0%

中断

什么是中断

CPU停下当前的工作任务,去处理其他事情,处理完成后继续执行刚才的任务,这一过程就是中断

中断分为内部中断和外部中断:

  • 外部中断来自于CPU外部,由硬件产生,分为可屏蔽中断和不可屏蔽中断
    • 可屏蔽中断:通过INTR线向CPU请求的中断,主要来自外部设备如硬盘、打印机等。此类中断不影响系统运行,可以随时处理甚至不处理
    • 不可屏蔽中断:通过NMI线向CPU请求的中断,如电源掉电,线路故障。不可屏蔽是说问题太大无法屏蔽
  • 内部中断来自于处理器内部,分为陷阱、故障、终止
    • 陷阱:有意的、预先安排的异常事件,一般是写程序时故意设下的陷阱指令,然后执行到陷阱时,CPU会调用特定程序进行相应的处理,**处理结束后返回到陷阱指令的下一条指令。
    • 故障:故障是在引起故障的指令被执行但还没执行结束时,CPU检测到的一类意外事件。出错时交由故障处理程序处理,如果能正确处理这个错误,就将控制返回引起故障的指令即CPU重新执行这条指令,如果不能处理就报错。常见的故障如缺页异常
    • 终止:执行指令的过程中发生了致命错误,不可修复,程序无法继续运行,只能终止,通常是一些硬件错误。终止程序不会将控制返回原程序,而是直接终止原程序

中断的流程

  • 发生中断:当外部设备或软件程序需要处理器注意或响应时,会发出中断信号。处理器接收到中断信号后,会停止执行当前指令,保存当前执行现场,并跳转到中断处理程序执行
  • 中断响应:处理器接收到中断信号后,会根据中断向量表找到对应的中断处理程序的入口地址,处理器会保存当前执行现场,以便处理完成后能够继续执行
  • 中断处理:处理器跳转到中断处理程序的入口地址开始执行中断处理程序。中断处理程序会根据中断类型进行相应的处理,可能涉及到保存现场、处理中断事件、执行特定任务等

中断的作用是什么

中断使得计算机系统具备应对处理突发事件的能力,提高CPU的工作效率,如果没有中断系统,CPU就只能按照原来程序编写的先后顺序,对各个外设进行查询和处理,即轮询工作方式,工作效率低,不能即使响应紧急事件