计算SJF算法中的平均等待时间

时间:2012-08-08 18:50:14

标签: scheduling preemptive

SJF Table and its Gantt Chart

我理解先发制人的SJF调度是如何运作的,但我不知道如何计算平均等待时间。
这个例子来自Galvin,Gagne和Silberschatz的“OS Principles” 他们将平均等待时间计算为:
((10-1)+(1-1)+(17-2)+(5-3)) / 4 = 6.5ms
这是怎么计算的?请简化。
此外,如果你能用RR算法解决相同的问题,那么时间量为5ms(用于简单计算),并解释如何计算平均等待时间

1 个答案:

答案 0 :(得分:4)

只需查看图表并计算每个过程,他等待了多长时间:

P1在开始时运行1次(他是唯一一次),因此他在这里等待0。比,他等待时间1到时间10 - >总等待时间=(10-1)。

P2在时间1到达,并立即开始运行。所以他根本没有等待 - > (1-1)。

P3在时间2到达,并在时间17开始运行 - > (17-2)。

P4在时间3到达,并在时间5开始运行 - >总等待时间=(5-3)。

因此,平均等待时间=((10-1)+(1-1)+(17-2)+(5-3))/ 4 = 6.5ms。

编辑: 对于具有5个量子的RR,这就是将要发生的事情:

P1到达,得到5ms的量子 - >在时间5,他停止了剩余的3。 接下来,P2将从时间5开始运行到时间9.(他的爆发仅为4)。所以你让P2等待(5-1)。

P3将开始运行,从时间9到时间14,剩余4次爆发。接下来,P4将从时间14开始运行到时间19并且将结束。 P4的总等待时间为(14-3)。

比P1将从时间19到22继续运行并将结束。 P1的总等待时间为(19-5)。比,P3从22时开始继续运行26. P3的总等待时间是(9-2)+(22-14)。

所以你得到平均跑步时间=((5-1)+(14-3)+(19-5)+(9-2)+(22-14))/ 4 = 10.5ms

相关问题