异常分类

异常分为四类:中断、陷阱、故障和终止,按同步/异步和是否可恢复进行区分。

中断(Interrupt):异步异常,由处理器外部的I/O设备信号触发。中断与当前执行的指令无关,发生在指令执行的间隙。典型例子是时钟中断、磁盘读写完成通知。处理完成后总是返回到下一条指令继续执行。

陷阱(Trap):同步异常,由程序主动触发,是有意的系统调用。程序执行 syscall 指令时,处理器陷入内核执行系统调用处理程序。陷阱完成后返回到下一条指令。陷阱是实现用户态与内核态切换的关键机制。

故障(Fault):同步异常,由指令执行过程中发生的错误条件触发。如果故障可以被修复(如缺页),则修复后重新执行导致故障的指令;如果不可修复,则转为终止。故障处理程序可以修正问题(加载磁盘页面),然后从故障点重新执行。

终止(Abort):同步异常,由不可恢复的致命错误触发,如硬件故障或非法的内存访问。终止处理程序不再返回原程序,而是直接终止进程。段错误(Segmentation Fault)是典型的终止异常。

链接到