什么是信号?
- 操作系统信号,英文signal,简称信号。
- 是IPC中唯一一种异步的通信方法。
- 它的本质是用软件来模拟硬件的中断机制。
- 信号用来通知某个进程有某个事件发生了。例如,在命令行终端按下某些快捷键,就会挂起或停止正在运行的程序。另外,通过kill命令杀死某个进程的操作也有信号的参与。
信号的表示方式?
- 每一个信号都有一个以“SIG”为前缀的名字,例如SIGINT,SIGQUIT,SIGKILL等等。
- 在操作系统内部,这些信号都由正整数表示,这些正整数称为信号编号。
如何查看操作系统的所有信号?
在Linux操作系统中,通过kill -l来查看所有的信号。
信号如何分类?
- Linux支持的信号有62种。注意:没有编号为32和33的信号。
- 编号从1到31的信号属于标准信号。
- 编号从34到64的信号称为实时信号。
标准信号存在什么问题?
对于同一个进程来说,每种标准信号只会被记录并处理一次。 如果发送给某一个进程的标准信号有多个,他们的处理顺序是不确定。
为什么要有实时信号?
- 实时信号解决了标准信号的两大问题。同种类的实时信号都可以记录在案,并且他们可以按照信号的发送顺序被处理。
- 已成为事实的标准信号无法被替换,所有标准信号和实时信号共存。
|