RR 调度示例

17 Mar 2025 | 4 分钟阅读

在以下示例中,有六个进程,名为 P1、P2、P3、P4、P5 和 P6。它们的到达时间和突发时间如下表所示。系统的时间片为 4 个单位。

进程 ID到达时间执行时间
105
216
323
431
545
664

根据算法,我们必须维护就绪队列和甘特图。两种数据结构的结构将在每次调度后发生变化。

就绪队列

最初,在时间 0,进程 P1 到达,它将被调度 4 个时间单位。因此,在就绪队列中,开始时将只有一个进程 P1,其 CPU 突发时间为 5 个单位。

P1
5

甘特图

P1 将首先执行 4 个单位。

os RR Scheduling Example GANTT chart

就绪队列

在 P1 执行期间,又有四个进程 P2、P3、P4 和 P5 到达就绪队列。P1 尚未完成,它还需要 1 个时间单位,因此它也将被添加回就绪队列。

P2P3P4P5P1
63151

甘特图

在 P1 之后,P2 将执行 4 个时间单位,这在甘特图中显示。

os RR Scheduling Example GANTT chart 1

就绪队列

在 P2 执行期间,又有一个进程 P6 到达就绪队列。由于 P2 尚未完成,因此 P2 也将以剩余的 2 个单位突发时间添加回就绪队列。

P3P4P5P1P6P2
315142

甘特图

在 P1 和 P2 之后,P3 将执行 3 个时间单位,因为其 CPU 突发时间仅为 3 秒。

os RR Scheduling Example GANTT chart 2

就绪队列

由于 P3 已完成,因此它将被终止,并且不会添加到就绪队列中。下一个要执行的进程是 P4。

P4P5P1P6P2
15142

甘特图

在 P1、P2 和 P3 之后,P4 将执行。它的突发时间只有 1 个单位,这小于时间片,因此它将完成。

os RR Scheduling Example GANTT chart 3

就绪队列

就绪队列中的下一个进程是 P5,其突发时间为 5 个单位。由于 P4 已完成,因此它不会被添加回队列。

P5P1P6P2
5142

甘特图

P5 将执行整个时间片,因为它需要 5 个单位的突发时间,这高于时间片。

os RR Scheduling Example GANTT chart 4

就绪队列

P5 尚未完成;它将被添加回队列,剩余突发时间为 1 个单位。

P1P6P2P5
1421

甘特图

进程 P1 将获得下一个机会来完成其执行。因为它只需要 1 个单位的突发时间,所以它将完成。

os RR Scheduling Example GANTT chart 5

就绪队列

P1 已完成,不会被添加回就绪队列。下一个进程 P6 只需要 4 个单位的突发时间,它将下一个执行。

P6P2P5
421

甘特图

P6 将执行 4 个时间单位直到完成。

os RR Scheduling Example GANTT chart 6

就绪队列

由于 P6 已完成,因此它不会再次添加到队列中。就绪队列中只有两个进程。下一个进程 P2 只需要 2 个时间单位。

P2P5
21

甘特图

P2 将再次执行,因为它只需要 2 个时间单位,因此它将完成。

os RR Scheduling Example GANTT chart 7

就绪队列

现在,队列中唯一可用的进程是 P5,它需要 1 个单位的突发时间。由于时间片为 4 个单位,因此它将在下一个突发中完成。

P5
1

甘特图

P5 将执行直到完成。

os RR Scheduling Example GANTT chart 8

完成时间、周转时间和等待时间将如下表所示计算。

我们知道,


进程 ID到达时间执行时间完成时间周转时间等待时间
105171712
216232216
3231196
4311298
545242015
664211511

                  平均等待时间 = (12+16+6+8+15+11)/6 = 76/6 个单位


下一个主题HRRN 调度