Skip to content

2020年 408 操作系统 第 25 题

操作系统2020年选择题2分

题目

下列与中断相关的操作中,由操作系统完成的是()。

Ⅰ、保存被中断程序的中断点

Ⅱ、提供中断服务

Ⅲ、初始化中断向量表

Ⅳ、保存中断屏蔽字

错因

A

把"保存中断点"想成了 OS 软件干的活——觉得"保存现场"嘛,肯定是中断处理程序写代码做的。但保存中断点这一步发生得比中断处理程序还早:CPU 一识别到中断信号,就由中断隐指令自动把当前 PC 压栈、把 PSW 切到内核态,等 OS 的中断处理程序拿到执行权时,PC 早就保好了。这是硬件做的事,不归 OS。

B

漏选了 Ⅲ 和 Ⅳ,可能觉得中断向量表和屏蔽字都是硬件相关的"开机自带"。但向量表的具体内容(每个中断号对应的处理程序入口)是 OS 启动时按自己实现的中断处理程序填进去的;屏蔽字也是 OS 在中断处理过程中根据中断优先级动态设置的——两者都需要 OS 知道"我有哪些中断处理程序、它们的相对优先级",硬件做不了这件事。

C

走了另一个极端:以为 OS 只管中断向量表和屏蔽字这种"配置类"工作,具体的中断服务(Ⅱ)误归给了硬件。但"提供中断服务"指的就是中断处理程序本身——读设备状态、搬数据、唤醒等待进程——全是 OS 软件代码。硬件只负责检测中断、跳转到向量表里登记的入口,剩下的服务流程都得 OS 自己写。

总解析

中断处理流程里"硬件做什么、OS 做什么"的划分是高频考点。关键看动作发生的时机:

步骤操作谁做
① 中断响应保存中断点(PC 入栈、PSW 切内核态)硬件(中断隐指令)
② 跳转入口按中断号查向量表,跳到入口硬件
③ 进入处理保存通用寄存器、保存中断屏蔽字OS(中断处理程序)
④ 提供服务读设备状态、搬数据、唤醒进程等OS
⑤ 恢复返回恢复屏蔽字、恢复寄存器、IRET 返回OS + 硬件
系统初始化填中断向量表(写各中断处理程序入口地址)OS(开机时)

逐个判:

  • Ⅰ 保存中断点:中断隐指令做的,硬件 → 不归 OS
  • Ⅱ 提供中断服务:中断处理程序就是 OS 代码 → OS ✓
  • Ⅲ 初始化中断向量表:硬件不知道"该跳到哪个 OS 函数",OS 启动时填表 → OS ✓
  • Ⅳ 保存中断屏蔽字:进入处理程序后由 OS 软件保存(栈上压一份),出来时再恢复 → OS ✓

只 Ⅰ 不是 OS 做的,剩下三个都是。

最终答案是 D

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题