我知道抢占式SJF调度是如何工作的,但我不知道如何计算平均等待时间。
这个例子取自Galvin,Gagne和Silberschatz的“OS原理”。
他们计算平均轮候时间的方法如下:
((10-1)+(1-1)+(17-2)+(5-3)) / 4 = 6.5ms
这是如何计算的?请简化。
另外,如果你能用RR算法解决同样的问题,那就太好了。5ms (用于简单计算),并解释如何计算平均等待时间
发布于 2012-08-09 03:02:20
只需查看图表,计算每个进程,他已经等待了多少时间:
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。
编辑: RR的有5个量程,这就是将要发生的事情:
P1到达,并在时间5中获得了5ms ->的量程,他停止了剩余的突发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
https://stackoverflow.com/questions/11871172
复制相似问题