抢占式优先级调度的平均等待时间

Average wait time for pre-emptive priority scheduling

给定以下 table 用于计算 进程的平均等待时间 基于优先级的抢占式调度 .

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) 如果几个进程具有相同的优先级怎么办?

我是 OS 的新手。我已经查看了其他一些类似的问题,但我没有确切地知道如何去做。

鉴于数据,在您必须实施基于优先级的抢占式调度之前,您应该了解以下事实:-

  1. 优先级通常是一定范围内的数字
  2. 高数字可能表示低优先级(取决于系统)
  3. 为每个进程关联一个优先级,将CPU分配给优先级最高的进程
  4. 任何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?

如果几个进程具有相同的优先级,那么将使用先来先服务 (FCFS) 来处理调度上面第4点提到的。因此,包括甘特图在内的所有地方,先来的流程将首先安排,而其他类似优先级的流程将延迟安排,因为它来得晚。

我希望我的步骤crystal清楚,不需要任何进一步的解释。