假设以下进程在指定的时间到达执行。每个进程将运行列出的时间量。
Process [Arrival Time(ms) , Burst Time(ms)]
A[0 , 5] , B[3 , 5] , C[5 , 3] , D[7 , 2]
我想绘制甘特图并计算抢先式最短作业优先调度的平均等待时间。
解决方案
等待时间为 2ms。
请告诉我这是否正确。
我怀疑的步骤是,在进程 B 到达的 3ms 时,调度程序是完成进程 A 还是启动进程 B。
假设以下进程在指定的时间到达执行。每个进程将运行列出的时间量。
Process [Arrival Time(ms) , Burst Time(ms)]
A[0 , 5] , B[3 , 5] , C[5 , 3] , D[7 , 2]
我想绘制甘特图并计算抢先式最短作业优先调度的平均等待时间。
解决方案
等待时间为 2ms。
请告诉我这是否正确。
我怀疑的步骤是,在进程 B 到达的 3ms 时,调度程序是完成进程 A 还是启动进程 B。
你可能不得不自己做你的功课。
展示您的尝试并说出您的问题和问题。
不要等待完整的现成解决方案!
是的,你的答案是正确的。事实上,提出的问题是模棱两可的,但两种可能性都给出了相同的答案。
首先,歧义: Shortest Job First 调度通常不被认为是抢占式的。抢占式变体称为 Shortest Remaining Time First Scheduling(例如参见Wikipedia 上的 Shortest Job Next 条目。但是,您的练习声明“抢占式作业优先调度”,这是模棱两可的......
其次,正如您所提到的,这两个调度策略之间可能存在差异的唯一时间是t=3
A 和 B 都符合条件的时候。但是如果调度是非抢占式的,当然 A 会继续执行。它是抢占式的,我们必须考虑剩余时间:A 还剩 2 毫秒,而 B 还剩 5 毫秒……所以 A 仍然获得 CPU。
最后,等待时间是 : A -> 0 ms, B -> 7 ms, C -> 0 ms, D -> 1ms
,其平均值确实是2 ms
。