Skip to content

2011年 408 计算机组成原理 第 21 题

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

题目

某计算机有五级中断 ,中断屏蔽字为 )表示对 级中断进行屏蔽。若中断响应优先级从高到低的顺序是 ,且要求中断处理优先级从高到低的顺序是 ,则 的中断处理程序中设置的中断屏蔽字是( )。

错因

A

选 11110 的人误把"响应优先级"当成"处理优先级"。按响应顺序 ,"留下响应最高的 不屏蔽()、其余都屏蔽"得到 11110。

错的根源:屏蔽字反映的是处理优先级,与响应优先级无关。响应优先级是硬件电路定的(不可更改),处理优先级才是用屏蔽字"动态"调出来的。题目给响应序只是干扰项。

B

选 01101 的人通常是把屏蔽字的位序读反了——按 从左到右填,再从右往左对齐。如果按处理优先级算出"屏蔽 ",写成 倒过来贴成 01010 没问题;但若中途又换序混淆,就可能得到 01101 这种"看起来像但每位都错位"的串。确认位序方向是这道题的关键之一。

C

选 00011 的人漏了 。算到" 自己要屏蔽"很对(),但接下来错把"处理优先级比 高的 "也屏蔽了()——刚好搞反了:处理优先级的应该能抢占当前 的处理(不屏蔽,置 0),处理优先级的()才该被屏蔽,于是漏掉 。本质是把"屏蔽字 1 = 不让它打断我"和"屏蔽字 1 = 优先级比我高"搞混了。

总解析

核心规则(一定要先记牢):

处理 时,屏蔽所有处理优先级 ≤ 的中断(包括 自己),不屏蔽处理优先级比 高的中断(让它们能"抢占"当前的 )。

为什么?——只有比当前级别处理优先级高的中断才该打断当前服务程序;同级或更低的应该乖乖等着。

第一步:把处理优先级排成表

题目给的处理顺序:(从高到低)

处理优先级排名1(最高)2345(最低)
中断级

第二步:找出 自己的位置以及"≤ "的中断

在处理优先级中排第 4。比 处理优先级低或等于(即排名 ≥ 4)的有:

  • 自己(排名 4)
  • (排名 5)

→ 这两个要屏蔽(设 1)。

处理优先级(排名 1~3)的有:

→ 这三个不屏蔽(设 0),让它们能抢占 的服务程序。

第三步:填入屏蔽字

对应中断处理优先级 vs 是否屏蔽取值
高(排名 1)0
低(排名 5)1
高(排名 3)0
等于(自身)1
高(排名 2)0

合起来:

第四步:验证嵌套行为

假设 正在执行,此时各中断到来时的反应:

来访的中断行为
0抢占 处理优先级最高)
0抢占 处理优先级第 2)
0抢占 处理优先级第 3)
1等待(不允许重入)
1等待(处理优先级最低)

完全符合题目要求的处理顺序。

最终答案是 D(01010)

判定口诀

  1. 响应优先级是硬件给的"摆样子"——只决定多个中断同时来时谁先被注意
  2. 处理优先级才是屏蔽字"动态调"出来的——决定谁能打断谁
  3. 屏蔽规则:自己屏蔽自己,并屏蔽所有处理优先级比自己低的;处理优先级比自己高的不屏蔽(让它们抢占)。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数