信号:一个信号就是一条消息,它通知进程系统中发生了某种类型事件。信号提供一种机制,通知用户进程发生了这些异常。
发送信号:内核通过更新目的进程上下文中的某个状态,发送一个信号给目的进程。发送信号的原因有:1、内核检测到一个系统事件,比如除零错误或者子进程终止。2、一个进程调用kill函数,显式地要求内核发送一个信号给目的进程。一个进程可以发送信号给它自己。
Unix系统提供大量向系统发送信号的机制。所有这些机制都是基于进程组这个概念的。每个进程都只属于一个进程组
接收信号:目的进程被内核强迫以某种方式对信号的发送做出反应,它就接收了信号。进程可以忽略这个信号,终止或者通过执行一个称为信号处理程序的用户层函数捕获这个信号。
一个发出而没有被接收的信号叫作待处理信号。一种类型的待处理信号只能有一个。如果超过一个那么其他的就会被丢弃。一个进程可以有选择性的阻塞接收某种信号,当一种信号被阻塞时,它仍可以被发送,但是产生的待处理信号不会被接收,直到进程取消对这种信号的阻塞。