非抢占式调度中如何计算平均周转时间?

问题描述 投票:0回答:2
Process  -  Arrival Time    -   Burst Time

    P1   -      0.0         -    7

    P2   -      0.5         -    3

    P3   -      1.0         -    2

附加信息:日程安排是非抢占式的。

问题:这些采用最短作业优先 (SJB) 的流程的平均周转时间 (ATT) 是多少 调度算法?

我的想法是:P3,P2,P1,但由于它是非抢占式的并且P1到达0.0,所以它是P1,P2,P3

 ATT P1 = 0
 ATT P2 = 6,5
 ATT P3 = 9

我这样做对吗?

algorithm scheduler preemption
2个回答
1
投票

首先,平均周转时间,顾名思义,是各个周转时间的平均值。因此整个设置只能有一个值。

其次,即使调度是非抢占式的,调度程序也可以在进程完成后决定任何等待的进程。起初,只有P1可用于调度。 P1 完成后,P2 和 P3 进入队列,其中 P3 是较短的作业。因此,正确的时间表是 P1、P3、P2。


0
投票

顺序是P1、P3、P2。 所以每个进程的开始时间(每个进程在前一个完成之后开始),

P1 = 0 
P3 = 0 + (burst time of P1) = 0 + 7 = 7
P2 = 0 + (burst time of P1) + (burst time of P3) = 0 + 7 + 2 = 9

计算:

completionTime = startTime + burstTime
turnaroundTime (TT) = completionTime - arrivalTime
                    = startTime + burstTime - arrivalTime
avg TT = total TT / total processes

每个进程的 TT 及其平均 TT :

TT of P1 = 0 + 7 - 0 = 7
TT of P2 = 9 + 3 - 0.5 = 11.5
TT of P3 = 7 + 2 - 1 = 8

Avg TT for all = (7 + 11.5 + 8)/totalProcesses 
               = (7 + 11.5 + 8)/3 
               = 26.5/3 
               = 8.83

但有时也需要分析等待时间和平均等待时间:

waiting time (WT) = startTime - arrivalTime
avg of WT = total WT / total processes

每个进程的 WT 及其平均 WT :

WT of P1 = 0 - 0 = 0
WT of P2 = 9 - 0.5 = 8.5
WT of P3 = 7 - 1 = 6

Avg WT for all = (0 + 8.5 + 6)/totalProcesses 
               = (0 + 8.5 + 6)/3 
               = 14.5/3 
               = 4.83
© www.soinside.com 2019 - 2024. All rights reserved.