首先,信号这个概念不好理解,因为它本身涉及到了“中断”这个概念。
“中断”概念的形象化描述(个人理解,可能会有偏差):CPU正在执行某个指令,突然,中断信号到达CPU指挥中心,CPU切换上下文,执行中断处理函数,中断处理函数执行完毕,CPU切换上下文,继续执行被中断的指令。
其中,中断处理函数就是信号处理函数,信号可以有进程产生,也可以由内核产生。信号的目的地可以是进程本身,也可以是其他进程。
信号的处理语义在C标准库中没有明确定义,这里的语义指的是:信号如何才能被阻塞,信号是否会排队等相关的概念。
《UNIX 网络编程》第3版5.9,5.10节有详细介绍。
本文通过形象化的描述解释了计算机科学中的中断概念,并详细介绍了信号如何在进程中产生及如何被处理。信号不仅可以由进程自身发出,也可以由内核产生,并能发送到进程本身或其他进程。
2546

被折叠的 条评论
为什么被折叠?



