操作系统中断和异常
操作系统中的中断和异常是处理计算机系统中各类事件与错误的关键机制,对系统稳定运行和资源管理至关重要,具体如下:
中断(外中断)
- 定义:由 CPU 执行指令外部的事件触发,是操作系统的主动中断机制。例如,设备完成 I/O 操作发出的中断、时钟中断(用于计时或任务调度)等。
- 分类:
- 可屏蔽中断:通过
INTR
线发出请求,可通过屏蔽字灵活控制多重中断,如时钟中断、普通 I/O 中断。 - 不可屏蔽中断:通过
NMI
线发出请求,用于紧急硬件故障(如电源掉电、存储器校验错),不可屏蔽,需立即处理。
- 可屏蔽中断:通过
- 作用:
- 实现 CPU 与 I/O 设备并行工作,提升资源利用率。
- 处理硬件故障、软件错误,支持人机交互、多道程序、分时操作、实时处理及应用程序与操作系统切换,还用于多处理器系统间的信息交互与任务切换。
异常(内中断)
- 定义:由 CPU 执行指令内部的事件触发,是操作系统的被动中断机制,一旦出现必须立即处理,不可屏蔽。例如,非法操作码、地址越界、运算溢出、缺页等。
- 分类:
- 故障(Fault):由指令执行引发(如非法操作码、缺页故障、除数为 0)。若内核能修复(如重新加载缺页),修复后将 CPU 使用权还给应用程序继续执行。
- 自陷(Trap):预先安排的“异常”(如用户态调用内核程序的条件陷阱指令),是应用程序主动引发的。
- 终止(Abort):由致命硬件故障(如控制器出错、存储器线路错误)引发,导致计算机无法继续执行,内核无法修复,通常直接终止应用程序。
中断与异常的区别
- 触发来源:中断由 CPU 外部事件(如设备请求)触发;异常由 CPU 内部执行指令时的事件(如非法操作码)触发。
- 处理时机:中断通常在当前指令执行完毕后响应(特殊情况除外);异常在指令执行过程中检测到问题时立即响应(如执行除法时发现除数为 0)。
- 能否屏蔽:可屏蔽中断能通过设置屏蔽字暂时忽略;异常一般不可屏蔽(部分可恢复故障处理时的特殊情况除外),需及时处理。
处理过程
当 CPU 执行用户程序时:
- 若检测到异常(如执行指令时缺页),或执行完指令后发现中断请求(如 I/O 设备完成),则打断当前程序。
- 跳转至相应的中断或异常处理程序。若处理程序能解决问题(如修复缺页故障),则通过返回指令回到被打断的程序(异常可能回到原指令或下一条,中断通常回到下一条指令);若为致命错误(如终止类异常),则终止用户程序。
中断和异常机制确保操作系统能及时响应外部请求、处理内部错误,保障系统稳定运行、资源高效利用及多任务并发处理,是操作系统实现并发、共享、虚拟、异步等特性的基础。
操作系统I 文章被收录于专栏
操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的核心程序,是用户与硬件之间的桥梁,也是计算机系统的核心组成部分。