CSAPP 读书笔记-第八章异常控制流
8.1.2 异常的类别
1. 中断
中断是异步发生的,是来自处理器外部的 I/O 设备的信号的结果。硬件中断不是由任何一条专门的指令造成的,从这个意义上来说它是异步的。
剩下的异常类型是同步发生的,是执行当前指令的结果。我们把这类指令叫做故障指令。
2. 陷阱和系统调用
陷阱是有意的异常,是执行一条指令的结果。就像中断处理程序一样,陷阱处理程序将控制返回到下一条指令。陷阱最重要的用途是在用户程序和内核之间提供一个像过程一样的接口,叫做系统调用。
3. 故障
当故障发生时,处理器将控制转移给故障处理程序。如果处理程序能够修正这个错误情况,它就将控制返回到引起故障的指令,从而重新执行它。否则,处理程序返回到内核中的 abort
例程,abort
例程会终止引起故障的应用程序。
4. 终止
终止处理程序从不将控制返回给应用程序。