Skip to content

2011年 408 操作系统 第 23 题

操作系统2011年选择题2分

题目

下列选项中,满足短任务优先且不会发生饥饿现象的调度算法是( )。

错因

A

FCFS 不饥饿(按到达顺序排队、人人都能轮到),但不偏向短任务——长任务先到的话短任务必须排队等。题问"短任务优先不饥饿",A 只满足后半。

C

时间片轮转不饥饿(轮流来),但不偏向短任务——它对长短任务一视同仁,每人都拿一个时间片。短任务在 RR 下没有优先权。

D

非抢占式 SJF 偏向短任务(核心机制就是选最短的),但会饥饿——源源不断的短任务进来,长任务永远排在最后等不到。题问"且不饥饿",D 不满足后半。

总解析

题问的是两个条件同时满足:① 短任务优先 ② 不饥饿。逐项核对:

算法短任务优先?不饥饿?同时满足?
A FCFS
B HRRN(高响应比)
C 时间片轮转
D 非抢占 SJF✗(长任务可能饥饿)

HRRN 的工作机制

每个进程的"响应比"定义为:

调度时选 R 最大的进程跑。两条性质:

  1. 短任务优先:服务时间小 → 分母小 → R 大 → 优先调度。这一点与 SJF 相同。
  2. 不饥饿:等待时间随时间增长 → 分子增大 → R 越来越大。无论一个长任务多长,等够久后它的 R 必然超过新到达的短任务,最终被调度。

速记:HRRN 把"等待时间"也算进优先级,等得越久优先级越高——既保留了 SJF 偏向短任务的高效,又用"等待时间"这个动态因子消除了饥饿。是 SJF 和 FCFS 的折中。

最终答案是 B

最后更新:

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

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