Skip to content

2022年 408 操作系统 第 27 题

操作系统2022年选择题2分

题目

下列关于 CPU 模式的叙述中,正确的是( )。

错因

A

把规则记反了。特权指令(开关中断、I/O、修改页表 / 段表寄存器、停机等)只能在内核态执行——如果用户态也能跑特权指令,用户程序可以直接关中断、改页表,OS 的隔离机制全废。

B

忽略了"内核态什么指令都能跑"这条事实。内核里同样有大量算术、循环、普通内存读写,这些都是非特权指令。"只能"二字过头了,少了非特权那部分。

D

跟 B 同类错,方向反了——把"用户态的限制"安到了内核态。要是内核态只能跑非特权指令,那特权指令在哪儿跑?OS 就管不了硬件了。

总解析

CPU 模式只有两条规则要记:

CPU 模式能跑的指令
用户态只能跑非特权指令(约束模式)
内核态特权 + 非特权都能跑(无约束)

特权指令指那些会动硬件 / 影响整机状态的指令——开关中断、I/O、改页表 / 段表寄存器、停机等。如果让用户程序直接执行这些,OS 对硬件和资源的管理就形同虚设,所以硬件强制把它们绑死在内核态。

四个选项都用了"只能",区别在于把这个限制放在哪里:

  • A 把"只能 + 特权"放给了用户态——反了
  • B 把"只能 + 特权"放给了内核态——内核还要跑非特权指令,"只能"过头
  • C 把"只能 + 非特权"放给了用户态——对
  • D 把"只能 + 非特权"放给了内核态——内核态本来就是为执行特权指令而存在的

最终答案是 C

最后更新:

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