异常是CPU内部产生的意外事件,分为故障、自陷和终止。
故障
概念: 指在引起故障的指令启动后、执行结束前被检测到的异常事件。此类异常无法通过异常处理程序回复正常,必须终止进程的执行。
例子: 译码过程中的缺页或者缺段,执行除法指令的时候发现除数为0。
自陷
概念: 是预先安排的一种人工异常事件,通常在特定指令处设置特殊控制标志。该类异常处理后可以恢复原进程正常执行。
例子: 程序调试的“打断点”和单步跟踪功能。
终止
概念: 在执行指令的过程中发生了计算机无法继续执行的硬件故障。只能终止。
例子: 控制器出错、存储器校验出错。
重点知识点辨析:
- 故障通常是由于代码本身的错误,自陷通常是人为故意产生的
- 终止和故障自陷的区别:终止不是由特定指令产生的,而是随机发生的。故障异常和自陷异常属于程序性异常,终止属于硬件异常。
- 异常都和当前所执行的指令有关。