5.中断和异常 in 操作系统
🍅中断机制的诞生
- 为了实现多道程序并发执行而引入的一种技术
🍅💡中断的概念和作用
- 当中断发生时,CUP立刻进入核心态
- 中断发生,当前进程会暂停运行,并由操作系统内核对中断进行处理
- 对于不同的中断信息,会有不同的处理
中断可以使得CPU从用户态切换为核心态,使得OS获得计算机的控制器权
用户态->核心态,是通过中断实现的(唯一途径)
核心态->用户态,是通过执行一个特权指令,将状态字的标志位设置为用户态就可以了
🍅💡中断的分类
💡内中断(信号来源于CPU内部,和当前指令有关)
又称内部异常
- 自愿中断
- 指令中断:系统调用时使用的访管指令,trap指令
- 强迫中断
- 硬件故障:字面意思,如缺页
- 软件中断:如整数除0,就会报错,出现异常
💡外中断(信号来源于CPU外部,和当前指令无关)
- 外设请求:如IO操作完成时发出的中断信号
- 人工干预:用户强行终止一个进程
🍅外中断中的处理过程
- 执行完每一个指令,CPU都要检测当前是否有外部中断信号
- 如果检测到外部中断信号,则需要保护被中断进程的CPU环境(类似于游戏打到一半需要退出,则要存档)
- 根据中断信号类型转入相应的中断处理程序
- 回复原进程的UPC环境并退出中断,返回原进程继续往下执行