首页 > 解决方案 > 需要解释问题的循环调度吗?

问题描述

     A              50                   1
     B              20                   2
     C              30                   3
     ProcessId      Time                 Order

给定上面使用循环的进程信息表,平均等待时间是多少?假设时间量子非常小(0.5 s)?

显然答案是 43 秒。我不明白这怎么可能。我能得到一些帮助吗?

我期待 P2 首先完成,它的等待时间为(A 的 40 个量子 + C 的 39 个量子)= 79 个量子 = 39.5 秒。

我预计 P3 将获得第二名,它的等待时间为(A 的 80 量子 + B 的 40 量子)= 120 量子 = 60 秒。

我希望 P1 最后完成,它的等待时间为(B 为 40 量子 + C 为 80 量子)= 120 量子 = 60 秒。

平均值 = (39.5 + 60 + 60) / 3 = 53.2 秒。但是,答案似乎是 43 秒。

标签: operating-system

解决方案


最初,进程表如下所示:

 A              100                  1
 B              40                   2
 C              60                   3
 ProcessId      Quanta               Order

对于第一个 40*3=120 quanta,将运行 3 个进程。进程 B 将更快地完成 1 个 quanta(在 119 个 quanta 之后),如果需要 119 个 quanta 才能获得 40 个 quanta,它一定一直在等待 79 个 quanta。

在前 120 个量子之后;进程表如下所示:

 A              60                   1
 C              20                   3
 ProcessId      Quanta               Order

对于接下来的 20*2=40 quanta,将有 2 个进程在运行。过程 C 将在 120+40 个 quanta 之后完成,如果需要 160 个 quanta 才能获得 60 个 quanta,那么它一定一直在等待 100 个 quanta。

在前 160 个量子之后;进程表如下所示:

 A              40                   1
 ProcessId      Quanta               Order

对于下一个 40*1=40 quanta,将有 1 个进程在运行。过程 A 将在 120+40+40 个 quanta 之后完成,如果它需要 200 个 quanta 才能获得 100 个 quanta,它一定一直在等待 100 个 quanta。计算这个的另一种方法是说 A 必须等待多少个量子 B 和 C 消耗,即 40+60 = 100 个量子。

平均等待时间为 (79+100+100)/3 = 93 quanta = 46.5 秒。


推荐阅读