5.5 异常和中断机制

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

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

异常和中断的分类

异常

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

中断

  • 可屏蔽中断
  • 不可屏蔽中断

==异常和中断的不同点==:

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

==断点(处理结束后返回的点)==

  • 异常:一般是返回原点【特殊情况是非法指令 除数为零时,回不到原点了,终止进程】
  • 中断:回到下一条指令的地址(因为中断是在指令结束后的中断周期检测出来的,所以回到下一条指令处)

异常和中断的相应过程

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