下表用于计算基于优先级的抢占式调度的进程的平均等待时间。
Process Burst Time Priority
P1 10 3
P2 1 1
P3 2 4
P4 1 5
P5 5 2
甘特图如下:
| P2 | P5 | P1 | P3 | P4 |
0 1 6 16 18 19
我有以下问题:
1) 周转时间 = 19 个单位吗?
2) 如何计算平均等待时间?有公式吗?
3) 如果几个进程具有相同的优先级怎么办?
我是操作系统新手。我看过其他一些类似的问题,但我不知 Prop 体该怎么做。
最佳答案
根据数据,在实现基于优先级的抢占式调度之前,您应该了解以下事实:-
- 优先级通常是一个范围内的数字
- 数字高可能表示优先级低(取决于系统)
- 为每个进程关联一个优先级,将CPU分配给优先级最高的进程
- 任意 2 个具有相同优先级的进程均按 FCFS 处理
有了这么多的知识,所需的甘特图将与您绘制的相同:-
| P2 | P5 | P1 | P3 | P4 |
0 1 6 16 18 19
1) Is the turn around time = 19 units?
不,周转时间将为 16 + 1 + 18 + 19 + 6 = 60。 平均周转时间 = 60/5 = 12。
2) How do i calculate average waiting time? Is there a formula?
平均等待时间定义为进程启动前等待的总时间除以进程总数。
这里,平均等待时间 = (6 + 0 + 16 + 18 + 1)/5 = 41/5 = 8.2。
3) What if few processes have the same priority?
如果少数进程具有相同的优先级,则将使用上面第 4 点中提到的先来先服务 (FCFS) 来处理调度。因此,包括甘特图在内的所有地方,首先出现的流程将首先被安排,而其他类似优先级的流程将被安排在较晚的时间,因为它迟到了。
我希望我的步骤非常清楚,不需要任何进一步的解释。
关于process - 抢占式优先调度的平均等待时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27837000/