个性化阅读
专注于IT技术分析

RR调度示例详解剖析

在以下示例中, 有六个进程分别命名为P1, P2, P3, P4, P5和P6。它们的到达时间和突发时间在下表中给出。系统的时间量为4个单位。

进程ID Arrival Time 爆发时间
1 0 5
2 1 6
3 2 3
4 3 1
5 4 5
6 6 4

根据该算法, 我们必须维护就绪队列和甘特图。每次调度后, 两个数据结构的结构都将更改。

准备队列:

最初, 在时间0, 线程P1到达, 该线程将按时间片4个单位进行调度。因此, 在就绪队列中, 从5个单元的CPU突发时间开始只有一个进程P1。

P1
5

甘特图

P1将首先执行4个单元。

os RR调度示例GANTT图表

准备队列

同时执行P1, 另外四个进程P2, P3, P4和P5进入就绪队列。 P1尚未完成, 需要另外1单位时间, 因此它也将被添加回就绪队列。

P2 P3 P4 P5 P1
6 3 1 5 1

甘特图

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

os RR调度示例GANTT图1

准备队列

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

P3 P4 P5 P1 P6 P2
3 1 5 1 4 2

甘特图

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

os RR调度示例GANTT图表2

准备队列

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

P4 P5 P1 P6 P2
1 5 1 4 2

甘特图

之后, P1, P2和P3, P4将被执行。它的爆发时间只有1个单位, 小于时间量, 因此它将完成。

os RR调度示例GANTT图3

准备队列

准备队列中的下一个进程是具有5个突发时间单位的P5。由于P4已完成, 因此不会将其添加回队列。

P5 P1 P6 P2
5 1 4 2

甘特图

P5将在整个时间片中执行, 因为它需要5个单位的突发时间, 该时间比时间片高。

os RR调度示例GANTT图4

准备队列

P5尚未完成;它将以剩余的突发时间1单位添加回队列。

P1 P6 P2 P5
1 4 2 1

甘特图

下一轮将给予线程P1以完成其执行。由于仅需要1个单位的突发时间, 因此它将完成。

os RR调度示例GANTT图5

准备队列

P1已完成, 不会被添加回就绪队列。下一线程P6仅需要4个脉冲串时间, 并且接下来将执行它。

P6 P2 P5
4 2 1

甘特图

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

os RR调度示例GANTT图6

准备队列

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

P2 P5
2 1

甘特图

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

os RR调度示例GANTT图7

准备队列

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

P5
1

甘特图

P5将执行直到完成。

os RR调度示例GANTT图8

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

据我们所知,

Turn Around Time = Completion Time - Arrival Time 
Waiting Time = Turn Around Time - Burst Time
Process ID 到达时间 Burst Time Completion Time 周转时间 Waiting Time
1 0 5 17 17 12
2 1 6 23 22 16
3 2 3 11 9 6
4 3 1 12 9 8
5 4 5 24 20 15
6 6 4 21 15 11

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

赞(0)
未经允许不得转载:srcmini » RR调度示例详解剖析

评论 抢沙发

评论前必须登录!