操作系统--操作系统的中断
中断的概念
中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的时间处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。
引入目的
- 解决CPU和I/O设备之间的并行工作问题
- 实时实现控制
中断的作用
- 实现CPU和I/O设备并行工作
- 实现硬件故障处理
- 实现人机-联系
- 实现多道程序和分时操作
- 实现实时处理
- 实现应用程序和操作系统的联系
- 实现多处理机系统中处理机之间的联系
中断的特点
- 随机性:在系统的运行过程中,中断事件随时可能出现
- 可恢复性:完成对某一事件的中断处理程序之后,系统会返回到原程序的断点处继续执行
- 自动性:在中断时间发生之后,进入中断、执行中断处理程序以及中断返回都是由系统自动完成的
中断在操作系统中的地位
- 是多道程序并发执行的推动力
- 操作系统是由中断驱动的
中断的分类
graph LR A[中断]-->B[外中断] B-->D[可屏蔽中断] B-->E[不可屏蔽中断] A-->C[内中断] C-->F[自愿中断] F-->G[系统调用] F-->H[缺页中断] F-->I[断点指令] F-->J[其他程序性异常] C-->K[强迫性中断] K-->O[硬件故障中断] K-->L[程序性中断] K-->M[输入输出中断] K-->N[外部中断]
内中断和外中断:中断来源是否来自计算机内部
外中断:来自CPU外的外部设备,通过硬件请求方式产生的强迫性中断
不可屏蔽中断:有就一定会执行中断
可屏蔽中断:在当前指令结束后,CPU根据中断允许标志位判断是否响应中断,通常用于CPU和外部设备之间的数据交换
强迫性中断:由随机事件和外部请求所引发的,引起强迫性中断的事件不是当前运行程序所期待的
自愿性中断:用户程序在使用中请求操作系统提供某种功能服务,通过执行一条访管指令,称为访管中断或陷阱,是当前运行程序所期待的,用户程序对操作系统的某种需求
中断的响应过程
graph TB A[发出中断信号]-->B[CPU完成当前指令的执行] B-->C[CPU发送中断答应信号]-->D[关中断] D-->E[CPU将PWS,PC和CS压入核心栈中] E-->F[将中断处理程序的入口地址送入IP和CS] F-->G[保存剩余的CPU状态信息]-->H[开中断]-->I[处理中断] I-->J[恢复CPU的状态信息]-->K[恢复中断钱的PWS,PC和CS]
简单概括
发现中断源
保护和恢复现场
中断响应
保护现场和传递参数
执行相应的中断服务函数
恢复现场并退出中断