进程和上下文切换都基于异常。信号提供了一种机制,通知用户进程发生了异常。信号也可以用于其他系统事件,或者进程之间的通知。当内核从一个异常处理程序返回,准备将控制传递给进程P时,它会检查p的未被阻塞的待处理信号集合,如果该集合不为空,则将进入该进程信号接收过程,最后才返回进程逻辑控制流的下一条指令。
信号处理完毕,返回到进程正常的逻辑控制流,这说明,如果原来进程在系统调用中阻塞(即慢速系统调用),则系统调用被中断了。
信号处理具有原子性,当前处理的信号,需要被阻塞。不阻塞,后来的信号可能会先被处理完。
信号处理程序,结束后会返回到异常处理程序中。