(这是我计算机工程学位第五学期问的一个问题)
如果使用的调度是循环调度,那么在以下场景中流程执行的顺序是什么?
量子大小=4
过程----到达时间----突发时间
A----0--3
B-1--5
C-3--2
D-9--5
E--12---5
我真正的怀疑出现在时间9。此时,A和C已完成执行。B在队列中,而D刚刚进入。先执行哪一个?B还是D
整体顺序应该是A-B-C-D-E-B-D-E吗还是A-B-C-B-D-E-D-E?
在循环过程中执行一段称为Quantum
的时间,你没有提到它。仍然没有问题。Round Robin
算法表示,每个进程将以循环方式获得相等的执行时间段。在歧义点,实现了First Come First Serve
方法。你在这里提到了僵局。B
应首先通信。以下是一些参考文献:Word Definition一个简单的例子
exe的顺序将是A-B-C-B-D-E-E-E,因为在时间3,即在就绪队列的exe之后,B、C的顺序相同,所以B被执行到时间7(作为TQ<B的突发时间),B在循环队列(就绪队列)中排队,如下A-B-B
在时间7,c将执行到时间10,而c的exe在时间9到达就绪队列,因此队列类似于A-B-B-d。。。最后的图表将是
Q=|A|B|C|B|D|E|D|E|T=|||||||0 3 7 10 11 15 19 20 21
循环调度类似于FCFS(FirstComeFirstServe)调度,但增加了抢占。就绪队列被视为循环队列。CPU调度程序运行就绪队列,为每个进程分配CPU,时间间隔为最多1个时间量。操作系统概念(Silberschatz)
现在就你而言,甘特图将如下所示:
A | B | C | D | E | B | D | E |
0 3 7 9 13 17 18 19 20
请注意,在这种情况下,我们首先考虑FCFS,并从流程A(到达时间0ms)开始,然后我们根据每个流程的到达时间(与您在问题中列出的顺序相同)继续调度每个流程,对于1时间量(每个4ms)。
如果进程的突发时间小于时间量,则它会自动释放CPU,否则将应用抢占。
因此,调度顺序将是:
A -> B -> C -> D -> E -> B -> D -> E