操作系统真的博大精深,我要哭了( ▼-▼ )
今天学习了一下《Linux/Unix系统编程手册》,对信号了解了一下,接下来主要记录一下信号传递的时机。
如果信号是同步产生的,比如说由硬件异常产生的异常信号或者是进程自己调用raise()或者kill()等系统调用,此时信号一经产生则立即传递。
而如果信号是异步产生的话,不管信号有没有被阻塞,在信号产生和传递之间任然可能会存在一个延迟,在这个延迟期间,信号将处于等待状态。这是因为内核将等待信号传给进程的时机为,该进程正在执行并且发生由内核态到用户态的下一次切换时。