Newtank

个人站

欢迎来到我的个人站~


操作系统的中断

目录

中断与异常

中断有广义和狭义的中断。

广义的中断是操作系统遇到需要处理的中断事件时,中断当前程序的执行,处理相应的中断处理程序,处理完毕后再处理被中断的程序。

狭义中断来源于处理器外的中断,即与当前指令无关的中断事件,例如IO、时钟等事件。这种中断也认为是异步中断,因为它会异步执行操作系统提供的中断回调函数,在中断发生后执行权转为操作系统,由OS的中断装置处理。异步中断不会对原程序的执行产生可见的影响,对被中断程序是透明的。

异常是当前指令引起的中断事件,如地址异常(如页缺失)、算术异常、处理器硬件故障等。

系统异常是执行陷入指令引发的系统中断事件,如请求设备、IO、进程等。

异常又被称为同步中断,它属于程序性中断事件,在解决中断前原程序无法继续执行下去。

中断处理程序

中断处理程序

操作系统处理中断事件的控制程序,主要处理中断事件和恢复正常操作

中断处理过程

  • 保护未被硬件保护的寄存器状态
  • 分析被中断进程的PSW字段,识别中断源
  • 分别处理发生的中断事件
  • 恢复正常操作

恢复正常操作

  • 对于某些中断,在处理完毕后,直接返回被中断的进程
  • 对于其他一些中断,中断当前进程的运行,启动进程调度,切换到别的进程

中断系统处理过程

  1. 运行进程中发生中断
  2. 硬件设备发现中断源
  3. 硬件设置中断码
  4. 硬件交换新旧PSW
  5. OS保存现场信息
  6. OS分析中断源
  7. OS处理中断事件、调整进程队列、进程调度
  8. OS恢复现场信息
  9. 硬件恢复PSW
  10. 回到某个运行进程

多中断处理

中断屏蔽

中断发生时,中断装置可以通过中断屏蔽来决定是否允许嵌套中断,有选择的响应中断。

中断优先级

OS同时遇到多个中断时,根据优先级选择执行这些中断的顺序,有优先级的响应中断。

中断处理次序

  • 中断屏蔽可以使中断装置不响应某些中断
  • 中断优先级决定中断装置响应中断的次序
  • 中断可以嵌套处理,但嵌套层数有限制
  • 中断的嵌套处理改变了中断处理的次序