一.概念与作用
- 发生了中断,就意味着需要操作系统介入,开展管理工作
- 由于操作系统进行管理工作时需要调用特权指令,因此CPU要从用户态转为核心态,使操作系统获得计算机的控制权。
- 当中断发生时,CPU立即进入核心态
- 当中断发生后,当前运行的进程暂停运行,由CPU内核对中断进行处理
- 对于不同的中断信号,会进行不同的处理
- 有了中断,才能实现多道程序并发执行
二.核心态和用户态的切换
- 用户态到核心态:通过中断实现,并且只能通过中断实现
- 核心态到用户态:通过执行一条特权指令修改程序状态字实现
三.中断的分类
内中断(也称异常)
- 中断信号来自CPU内部,与当前执行的指令有关
分类:
- 指令中断(自愿中断):如系统调用时使用的访管指令
- 硬件故障(强迫中断):如缺页
- 软件中断(强迫中断):如除数为0
外中断
- 中断信号来自CPU外部,与当前执行的指令无关
分类:
- 外设请求:如I/O操作完成后发出的中断信号
- 人工干预:如用户强行终止一个进程
四.中断的另一种分类方式
内中断
- 陷阱、陷入(trap):有意为之的异常,如系统调用
- 故障(fault):由错误条件引起的,可能被故障处理程序修复,如缺页
- 终止(abort):不可恢复的错误造成的结果,终止处理程序不再将控制返回给引发终止的应用程序,如除数为0
外中断
- I/O中断请求
- 人工干预
五.外中断的处理过程
- 执行完每个指令,都会检测是否有外部中断信号
- 如果发现有外部中断信号,则要保护被中断进程的cpu环境
- 根据中断信号类型转入相应的中断处理程序
- 恢复原进程的CPU环境并退出中断,返回原进程继续往下执行