Skip to content

中断和异常的处理

考情分析

中断是操作系统的核心机制,中断的分类和处理流程是选择题高频考点。🔥🔥🔥 高频核心。

CPU 一旦开始执行用户程序就停不下来,操作系统靠什么机制把控制权"抢"回来?

中断的作用

中断是操作系统工作的驱动力。没有中断机制,操作系统无法:

  • 从用户态切换到内核态(无法获得 CPU 控制权)
  • 实现多道程序并发(无法抢占 CPU)
  • 处理 I/O 设备请求

中断的分类

外中断 vs 内中断

比较外中断(Interrupt)内中断(Exception)
来源CPU 外部CPU 内部(指令执行过程中)
检测时机指令执行完毕指令执行过程中
典型来源时钟、I/O 设备非法操作、地址越界、缺页

内中断的三种类型

类型特点处理方式举例
陷入 Trap用户有意为之处理后执行下一条指令系统调用
故障 Fault可恢复的错误修复后重新执行引起故障的指令缺页异常
终止 Abort不可恢复的错误终止进程硬件故障、非法指令

区分 Trap 和 Fault 的关键

Trap 是主动触发的,返回后执行下一条指令。Fault 是被动发生的错误,修复后重新执行当前指令。

中断处理流程

硬件完成 vs 软件完成

阶段由谁完成具体操作
关中断硬件自动设置 IF=0
保存断点硬件将 PC(和 PSW)压栈
查向量表硬件根据中断号找到入口地址
保存/恢复现场软件(OS)保存通用寄存器等
中断处理软件(OS)执行具体的处理逻辑

中断向量表

中断向量:中断处理程序的入口地址

中断向量表:按中断号索引的数组,每个表项存放对应中断处理程序的入口地址——类似于急诊分诊台的科室电话簿,拿到编号就能直接找到对应的处理入口。

中断号 → 入口地址
  0    → 除零异常处理程序
  1    → 调试异常处理程序
  ...
  14   → 缺页异常处理程序
  ...
  32+  → 外设中断处理程序

中断屏蔽

概念说明
可屏蔽中断可以通过设置中断屏蔽字来暂时忽略
不可屏蔽中断无法屏蔽,必须立即处理(如电源故障)
IF 标志位IF=1 允许响应可屏蔽中断,IF=0 禁止

OS 视角 vs CO 视角

中断这个话题在 408 里跨 OS 和组成原理两科出题,侧重点完全不同——选择题里识别考点视角是审题第一步:

维度OS 视角(本文)CO 视角(组成原理)
关心什么OS 如何夺回控制权 + 切换内核态 + 进程切换硬件如何识别中断信号 + 中断隐指令 + 中断优先级判别
典型题面"进程切换由什么触发?" / "缺页异常返回后执行哪条指令?""中断隐指令完成哪些操作?" / "硬件中断响应的最后一个动作是?"
典型对象进程、PCB、内核态/用户态、系统调用流程中断屏蔽字、中断优先级电路、向量地址形成、PSW 压栈
重叠地带中断处理流程的"硬件完成"那 3 步——OS 视角点到即止,CO 视角要深入到时序信号

当题面里出现"中断隐指令""中断响应周期""屏蔽字赋值时机"——属 CO 端,请回 co-blog 的 exception-interrupt-co 那篇查;OS 题不会考这些底层细节。

考研高频考点

  • 🔥🔥🔥 中断/异常的分类(外中断 vs 内中断,Trap/Fault/Abort)
  • 🔥🔥🔥 中断处理流程(硬件完成 vs 软件完成的分界)
  • 🔥🔥🔥 缺页异常属于 Fault(修复后重新执行当前指令)
  • 🔥🔥 中断是 OS 获取 CPU 控制权的唯一途径
  • 🔥🔥 中断向量 = 中断处理程序的入口地址
  • 🔥 可屏蔽中断 vs 不可屏蔽中断

中断机制让 OS 能夺回 CPU 控制权,而用户程序主动请求 OS 服务的方式就是系统调用——下一篇详解系统调用的概念和执行流程。

真题练习

相关真题(7题)

2024Q23选择题2分

多道程序:进程数过多会导致频繁切换和抖动,CPU利用率反而下降

中断与异常(OS 视角)
2022Q24选择题2分

进程终止:不一定有子进程,所以终止子进程不是必须的

中断与异常(OS 视角)
2022Q31选择题2分

中断处理:中断服务程序将数据送入内核缓冲区

中断与异常(OS 视角)系统调用
2016Q23选择题2分

批处理系统:不支持交互,分单道和多道,中断技术支持并行

操作系统概念与发展中断与异常(OS 视角)
2015Q24选择题2分

态切换:NOT是普通算术指令,不会引起态切换

中断与异常(OS 视角)
2014Q25选择题2分

特权指令:关中断是特权指令,只能在内核态执行

CPU 运行模式中断与异常(OS 视角)
2013Q28选择题2分

态切换:除零异常和read系统调用进入内核态,sin()是库函数不进入

中断与异常(OS 视角)系统调用