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
我这样做对吗?
首先,平均周转时间,顾名思义,是各个周转时间的平均值。因此整个设置只能有一个值。
其次,即使调度是非抢占式的,调度程序也可以在进程完成后决定任何等待的进程。起初,只有P1可用于调度。 P1 完成后,P2 和 P3 进入队列,其中 P3 是较短的作业。因此,正确的时间表是 P1、P3、P2。
顺序是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