Skip to content

2023年 408 操作系统 第 29 题

操作系统2023年选择题2分

题目

进程 P1、P2 和 P3 进入就绪队列的时刻、优先级(越大优先权越高)以及 CPU 的执行时间如下表所示。

进程名进入就绪队列的时刻优先级CPU 执行时间
P10ms160ms
P220ms1042ms
P330ms10013ms

系统采用基于优先权的抢占式 CPU 调度算法,从 0ms 时刻开始进行调度,则 P1、P2 和 P3 的平均周转时间为( )。

错因

A

60 ms 离正解就差 1——典型的"算时刻点漏一两个 ms"的粗心失误。比如把 P3 完成时刻写成 t=42 而不是 t=43,或者 P1 最终完成时刻写成 114 ms,心算抢占切换的瞬间最容易在这种地方掉单位。

C

70 ms 多半是把"P3 跑完后由谁继续"判错了。按抢占式优先级,P3 在 t=43 完成时,就绪队列里 P2(优先级 10) > P1(优先级 1),应当 P2 续跑。如果顺手当成 FCFS 让 P1 在 t=43 接续,P1、P2 的完成时刻互换,整体周转时间和就被推高。

D

71 ms 常见是漏掉某次抢占——比如认为 P3 在 t=30 到达时不能立刻抢占 P2,得等 P2 跑完才上 CPU。漏一次抢占就让三个进程的时间线整体后移、周转时间集体变大。

总解析

题面有两个约束要扣紧:优先级值越大越高(注意和有些题"越小越高"反过来)+ 抢占式

事件来源:进程到达 / 进程结束,每次都重新选当前就绪队列里的最高优先级。

时刻事件当前进程决策
0P1 到达空闲启动 P1(唯一进程)
20P2(10) 到达P1(1) 跑了 20ms 剩 40P2 抢占(10 > 1)
30P3(100) 到达P2(10) 跑了 10ms 剩 32P3 抢占(100 > 10)
43P3 跑完结束候选 P1(1)、P2(10) → P2 续(10 > 1)
75P2 跑完结束队列里只剩 P1 → P1 续
115P1 跑完结束全部完成

各进程周转时间 = 完成时刻 − 进入时刻:

进程进入完成周转时间
P10115115 ms
P2207555 ms
P3304313 ms

平均周转时间:

最终答案是 B

最后更新:

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

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