5.5 异常和中断机制

异常:CPU内部产生的意外事件

中断:CPU外部的设备向CPU发出的中断请求

异常和中断的分类:

异常:

  • 硬故障中断
    • 终止(Abort)
  • 程序性异常(软件中断)
    • 故障(Fault):在引起故障的指令启动后,执行结束前被检测到的异常事件。无法通过异常处理程序恢复故障,必须终止进程的执行。
    • 自陷(Trap):预先安排的一种“异常”事件。

中断:

可屏蔽中断

不可屏蔽中断

异常和中断的不同点:

  • 一些异常(eg缺页溢出)是由特定指令在执行过程中发生的。而中断不和任何指令相关联,也不阻止任何指令的完成。
  • 异常的检测由CPU自身完成。对于中断,CPU必须通过中断请求线获取中断源的信息,才能知道哪个设备发生了何种中断。

异常和中断的相应过程:

  • 关中断
  • 保存断点和程序状态
  • 识别异常和中断并转到相应的处理程序
    • 异常大多使用软件识别的方式:CPU设置一个异常状态寄存器,用于记录异常原因。
    • 中断可以采用软件识别和硬件识别的方式:又称向量中断。