最短作业优先调度

时间:2013-04-04 15:13:08

标签: operating-system scheduling

假设以下进程在指定的时间到达执行。每个流程都会运行所列出的时间。

Process [Arrival Time(ms) , Burst Time(ms)]
A[0 , 5] , B[3 , 5] , C[5 , 3] , D[7 , 2]

我想绘制 Gantt 图表并计算抢先最短作业优先计划的平均等待时间。

解决方案

http://imgur.com/fP8u61C

等待时间是2毫秒。

请告诉我这是否正确。

我怀疑的一步是,当进程B到达时的3ms,调度程序是否会完成进程A或启动进程B.

2 个答案:

答案 0 :(得分:0)

你可能需要自己做作业。

展示你的尝试并说出你的问题和问题。

不要等待完整的现成解决方案!

答案 1 :(得分:0)

是的,你的回答是正确的。事实上,提出的问题是模棱两可的,但两种可能性都给出了相同的答案。

首先,模糊性:最短作业优先调度通常不被认为是先发制人的。抢占式变体称为最短剩余时间优先调度(参见例如the Shortest Job Next entry on Wikipedia。但是,您的运动状态表示“抢占作业优先计划”,而表示不明确......

第二,然而,正如您所提到的,当A和B都符合条件时,t=3时,这两个调度策略之间可能存在差异的唯一时间。但如果调度是非先发制人的,那么A当然会继续执行。它是先发制人的,我们必须考虑剩余的时间:A剩下2毫秒,而B有5个...所以A仍然得到CPU。

最后,等待时间为:A -> 0 ms, B -> 7 ms, C -> 0 ms, D -> 1ms,其平均值确实为2 ms