在这种循环调度的特殊情况下,进程的顺序



(这是我计算机工程学位第五学期问的一个问题)

如果使用的调度是循环调度,那么在以下场景中流程执行的顺序是什么?

量子大小=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

最新更新