Skip to content

2021年 408 计算机组成原理 第 22 题

计算机组成原理2021年选择题2分

题目

下列是关于多重中断系统中 CPU 响应中断的叙述,其中错误的是( )。

错因

B

B 是正确叙述。"中断响应周期"是 CPU 检测到中断请求之后才进入的特殊机器周期——里面执行隐指令做关中断、保断点、送入口三件事。没有请求就不会进入,这是因果关系。

C

C 也正确。进入中断响应周期意味着 CPU 已经决定响应这个中断——前提之一就是中断使能位 IF = 1(开中断态)。如果 IF = 0,CPU 即便发现中断请求也会按下不响应,不会进入响应周期。详见 2018-22。

D

D 也正确。CPU 实际"检测到"的中断请求信号,是经过屏蔽逻辑过滤后的——被屏蔽掉的请求根本不会到达 CPU 的请求线上。所以"CPU 检测到中断请求"等价于"存在未被屏蔽的中断请求",反过来也成立。

总解析

A 错在哪——"仅在用户态"是关键陷阱

多重中断系统的核心特征就是允许嵌套:当 CPU 正在处理某个中断的 ISR 时(此时处于内核态),更高优先级的中断仍然可以打断它。

  • 用户态正在跑 → 来中断 → 切到内核态跑 ISR1
  • 内核态在跑 ISR1 → 来更高优先级中断 → 嵌套切到 ISR2(仍在内核态,但中断照常响应
  • ISR2 跑完 → 返回 ISR1 → ISR1 跑完 → 返回用户态

如果限定"仅用户态才能响应中断",那么 ISR1 跑的时候根本无法被打断——这就退化成了单级中断,违背了"多重中断"的定义。

多重中断响应不挑 CPU 工作模式:用户态下能响应、内核态下也能响应。决定能否响应的是:

  1. 存在中断请求(外部硬件信号已送达)
  2. 请求未被屏蔽(屏蔽字对应位 = 0)
  3. 中断使能位 IF = 1(开中断态)

CPU 处于"用户态"还是"内核态"与中断响应无关——这是 OS 的概念(保护级别),中断响应是 CPU 硬件层面的事。

逐项审计

选项说法对/错关键判据
A仅用户态可响应中断内核态(ISR 中段开中断后)也能响应,多重中断的核心
BCPU 检测到请求后才进入响应周期因果关系
C进入响应周期时 CPU 处于开中断态IF = 1 是响应前提
D检测到请求 → 必有未屏蔽的请求屏蔽掉的根本到不了 CPU

用户态/内核态 与 中断响应的关系(澄清)

维度用户态内核态
谁在跑用户程序OS 代码 / ISR
能否响应外部中断(多重中断时)
能否执行特权指令不能
与中断响应的关系无直接因果——中断响应看 IF,不看 PSW 模式位

最终答案是 A(这是错误叙述)

易错点速记

  1. 看到"…才"这种绝对化措辞 → 优先怀疑
  2. 看到"用户态/内核态才能 X"——除非 X 明确是特权指令 / OS 操作,否则多半错
  3. 多重中断的本质是"嵌套",所以任何"不能嵌套"的描述(关中断、单一态响应、按到达顺序…)都是错的方向

最后更新:

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