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