10.1 简介
信号是软件中断。许多重要的应用程序都需要处理信号,信号提供了一种异步事件处理的方法—举例来说,一个用户在终端上键入中断按键或者是pipeline中下一个程序提前终止。
信号在早期UNIX系统中就已经有提供了,但是系统中的信号模型并不可靠,信号可能丢失,当程序中执行一段关键区域的代码的时候,很难去关闭指定的信号。BSD4.3以及SVR3都对信号模型进行了修改,增加了称为可靠信号reliable signals的东西,但是Berkeley与AT & T所做的修改并不兼容。幸运的是,POSIX.1将可靠信号方法标准化了,那正式我们将在书中介绍的内容。
在本章中,我们以信号的综述以及信号通常用来做什么开始,然后看在早期实现中存在的问题,在学习如何正确做事之前看一下之前的实现中存在的问题对于知识的理解是相当重要的。本章中还包含了几个不一样的例子,这些例子并不完全正确,作为对于缺陷的一种讨论。