【问题标题】:Round Robin Scheduling Algorithm循环调度算法
【发布时间】:2014-10-24 10:46:34
【问题描述】:
再次,在 JAVA 中做一些调度算法,但问题是我在互联网上找到的所有示例都没有回答我的问题,所以我无处可问,我发了这个帖子:
如果我有 3 的量子时间和进程:
Name - ArrivalTime - BurstTime
P0 - 0 - 5
P1 - 6 - 5
P2 - 6 - 9
P3 - 8 - 2
所以我没有找到任何例子来说明如果进程 P1 没有到达,但是量子结束了怎么办?所以 P0 在 3 毫秒内执行,还剩下 2 毫秒,时间片已经结束,P1 还没有到达。程序会等待 P1 还是会在完成 P0 后仍然等待 1 毫秒(直到 P1 到达)?
【问题讨论】:
标签:
algorithm
operating-system
scheduling
【解决方案1】:
调度算法只调度等待运行的进程。
一个执行可能是:
T0 : Waiting Process = [P0] ; Executed Process = P0(1-2-3)
T3 : Waiting Process = [P0] ; Executed Process = P0(4-5) => P0 finished
T5 : Waiting Process = [] ; Executed Process = Nothing
T6 : Waiting Process = [P1, P2] ; Executed Process = P1(1-2-3)
T9 : Waiting Process = [P2, P3, P1] ; Executed Process = P2(1-2-3)
T12 : Waiting Process = [P3, P1, P2] ; Executed Process = P3(1-2) => P3 finished
T14 : Waiting Process = [P1, P2] ; Executed Process = P1(4-5) => P1 finished
T16 : Waiting Process = [P2] ; Executed Process = P2(4-5-6)
T19 : Waiting Process = [P2] ; Executed Process = P2(7-8-9) => P2 finished
在T3上,只有P0在等待运行,所以会在下一个时间段执行。