[TOC]
- 广义:程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程。
- 操作系统是“中断驱动”的,中断是激活操作系统的唯一方式。
- 狭义:处理器之外的中断事件,与当前运行指令无关的中断事件。I/O中断、时钟中断、外部信号中断。
- 当前运行指令引起的中断事件。地址异常、算术异常、处理器硬件故障。
- 系统异常:执行陷入指令而触发系统调用引起的中断事件。请求设备、请求I/O、创建进程。
- 保护现场
- 停止设备
- 停止CPU
- 向操作员报告
- 等待人工干预
- 除数为0,操作数溢出等算术异常:简单处理,报告用户;由用户编写中断续元程序处理
- 非法程序、用户态使用特权指令、地址越界、非法存取等指令异常:终止程序
- 终止进程指令:终止进程
- 虚拟地址异常:调整内存后重新执行指令
- 请求分配外设、请求I/O等等
- 处理流程:陷入OS,保护现场,根据功能号查入口地址,跳转具体处理程序
- I/O完成:调整进程状态,释放等待进程
- I/O出错:等待人工干预
- I/O异常:等待人工干预
- 时钟中断、间断时钟中断:记时与时间片处理
- 设备报到与结束中断:调整设备表
- 键盘/鼠标信号中断:根据信号作出相应反应
- 关机/重启动中断:写回文件,停止设备与CPU
- 发现中断寄存器中记录的中断
- 决定这些中断是否应该屏蔽
- 当有多个要响应的中断源时,根据规定的优先级选择一个
- 保存当前程序的PSW/PC到核心栈
- 操作系统处理中断事件的控制程序,主要任务是处理中断事件和恢复正常操作
- 保护未被硬件保护的处理器状态
- 通过分被中断进程的PSW中断码字段,识别中断源
- 分别处理发生的中断事件
- 恢复正常操作
- 对于某些中断,在处理完毕后,直接返回刚刚被中断的进程
- 对于其他一些中断,需要中断当前进程的运行,调整进程队列,启动进程调度,选择下一个执行的进程并恢复其执行
- 运行进程
- 在硬件中,发现中断源,置中断码以备分析,交换新旧PSW
- 在操作系统中,保护未被硬件保护的现场信息,分析中断源,分别处理各类中断事件
- 调整进程队列,进程调度,恢复处理器现场信息
- 恢复处理器现场信息
- 在硬件中,恢复PSW
- 恢复进程
- 当计算机检测到中断时,中断装置通过中断屏蔽位决定是否响应已发送的中断
- 有选择的响应中断
- 当计算机同时检测到多个中断时,中断装置响应中断的顺序
- 有优先度的响应中断
- 一种可能的处理次序
- 处理机硬件故障中断事件、自愿性中断事件、程序性中断事件、时钟中断等外部中断事件、输入输出中断事件、重启动和关机中断事件
- 不同类型的操作系统有不同的中断优先级
- 当计算机响应中断后,在中断处理过程中,可以再响应其他中断
- 操作系统是性能攸关程序系统,且中断响应处理有硬件要求,考虑系统效率和实现代价问题,中断的嵌套处理应限制在一定层数内,如三层
- 中断的嵌套处理改变中断处理次序,先响应的有可能后处理
- 中断屏蔽可以使中断装置不响应某些中断
- 中断优先级决定了中断装置响应中断的次序
- 中断可以嵌套处理,但嵌套的层数应有限制
- 中断的嵌套处理改变了中断处理的次序
- X、Y两个中断同时发生
- 先响应X
- 因Y被屏蔽,继续处理X
- 再响应并处理Y
- X、Y两个中断同时发生
- 根据中断优先级,先响应X
- 因未屏蔽Y,再响应并处理Y
- Y处理完成后,再处理X