Skip to content

2024年 408 操作系统 第 30 题

操作系统2024年选择题2分

题目

假设某系统使用时间片轮转调度算法进行 CPU 调度,时间片大小为 5 ms,系统共有 10 个进程,初始时均处于就绪队列,执行结束前仅处于执行态或就绪态。若队尾的进程 P 所需 CPU 时间最短,时间为 25 ms。在不考虑系统开销的情况下,则进程 P 的周转时间为( )。

错因

A

少算了一轮或时间片数。常见错法是把 5 轮 × 50 ms 减去 P 自己的最后 5 ms(误以为最后一轮 P 不必跑完),或者把 P 在第 4 轮的末尾就当成结束(4 × 50 = 200)。但 P 需要 25/5 = 5 个完整时间片,第 5 轮跑完才结束,少算一轮就误算到 200。

B

把 P 当成队首来算(忽略了题面"队尾"的位置约束)。如果 P 在队首:每一轮 P 先跑 5 ms、再轮其他 9 个跑 45 ms。P 跑完 5 个时间片:前 4 整轮 (4 × 50 = 200 ms) + 第 5 轮 P 自己跑 5 ms = 205 ms。这是 P 在队首情形的标准答案。本题说 P 在队尾,整整错位 45 ms。"队尾"是关键约束,读题不能跳。

D

多算了一轮——常见错法是误以为第 5 轮 P 跑完后还要等其他 9 个进程"收尾",得到 250 + 45 = 295;或把 25/5 = 5 错算成 6 个时间片,得到 6 轮 × 50 - 5 = 295。但 P 自己跑完即出系统,不需要等其他进程,且 25 / 5 整除恰好需要 5 片,没有"额外的零头"。

总解析

模型回顾:RR 算法每个进程轮流执行 1 个时间片(5 ms)后排到队尾,下一进程接上。

已知条件梳理

  • 时间片 = 5 ms,10 个进程
  • P 在队尾位置(第 10 位)
  • P 所需 CPU 时间最短 = 25 ms(其他 9 个进程都 ≥ 25 ms)
  • 关键推论:前 5 轮内所有进程都不会提前结束(因为最短的 P 也要 5 轮才完成)

P 完成所需时间片数 个时间片。

关键观察:每一轮(10 个进程各跑一次)耗时 = 10 × 5 = 50 ms。P 在队尾,每一轮 P 都是最后一个跑。

逐轮推演

轮次其他 9 个进程占用区间P 占用区间P 已运行P 剩余
第 1 轮[0, 45][45, 50]520
第 2 轮[50, 95][95, 100]1015
第 3 轮[100, 145][145, 150]1510
第 4 轮[150, 195][195, 200]205
第 5 轮[200, 245][245, 250]250 ✓

P 在 t = 250 ms 完成。

P 的周转时间

速算公式(队尾 + 整除情形):

其中 = 进程数, = 时间片, = P 需要的时间片数。本题 ms。

易混点

  • 队首位置 → 简化为 ms(这是错因 B 的来源)
  • 队尾位置(本题): ms

最终答案是 C

最后更新:

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

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