Skip to content

2021年 408 操作系统 第 27 题

操作系统2021年选择题2分

题目

下列事件中,可能引起进程调度程序执行的是( )。

Ⅰ. 中断处理结束 Ⅱ. 进程阻塞 Ⅲ. 进程执行结束 Ⅳ. 进程的时间片用完

错因

A

只挑了"进程主动 / 被动让出 CPU"的两种(Ⅰ 中断结束、Ⅲ 执行结束),漏了 Ⅱ 阻塞和 Ⅳ 时间片到期。但 Ⅱ 阻塞实际上是最经典的调度时机——进程一阻塞,CPU 立马空出来,必须重新调度;Ⅳ 时间片到期则是抢占式调度的标志事件,必须重新选下一个进程。

B

挑了 Ⅱ + Ⅳ,看到这两个最直接的"让出 CPU"事件就锁定了,对 Ⅰ 和 Ⅲ 想不通。但 Ⅲ 执行结束后 CPU 显然空了得选下一个跑(最直观),Ⅰ 中断结束时也常常发生重新调度——比如 I/O 完成中断让某个高优先级进程从阻塞态变为就绪态,OS 在中断返回前会检查是否需要切换。

C

漏选 Ⅰ 和 Ⅱ,只看到了"明显的让出 CPU"事件。Ⅰ 中断处理结束是隐式的高频调度时机:每次时钟中断、I/O 完成中断、缺页中断处理结束时,OS 都会顺便检查"现在跑这个进程合不合适"。Ⅱ 进程阻塞更是必然引发调度——CPU 都空了不调度还能干啥?

总解析

进程调度的时机分两类:主动放弃 CPU被动让出 CPU。题里四个选项覆盖了这两类的几乎全部典型场景:

事件类型为什么会触发调度
Ⅰ 中断处理结束被动OS 在中断返回前检查"中断里改变了进程状态没"——比如 I/O 完成中断让某进程从阻塞回到就绪,可能要抢占
Ⅱ 进程阻塞主动进程因 I/O / 信号量 / sleep 自己挂起,CPU 立即空出来,必须挑下一个进程
Ⅲ 进程执行结束主动进程跑完退出,CPU 空,必须挑下一个
Ⅳ 进程时间片用完被动RR 等抢占式算法的标志事件,必须重新挑下一个进程

四个事件全是调度时机——所以全选。注意题面问"可能引起"——只要这个事件下有可能触发一次调度,就算数。Ⅰ 和 Ⅳ 在不同算法 / 不同场景下会发生调度的概率不同,但都属于"调度有可能在这里发生"的事件。

补充几个题里没提但同样是调度时机的:

  • 进程从内核态返回用户态时(检查抢占)
  • 创建一个高优先级新进程(可能立即抢占当前进程)
  • 进程切换优先级(如果策略允许)

最终答案是 D

最后更新:

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

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