[英]Calculating Waiting Time and Turnaround Time in (non-preemptive) FCFS queue
我有6个流程如下:
-- P0 --
arrival time = 0
burst time = 10
-- P1 --
arrival time = 110
burst time = 210
-- P2 --
arrival time = 130
burst time = 70
-- P3 --
arrival time = 130
burst time = 70
-- P4 --
arrival time = 130
burst time = 90
-- P5 --
arrival time = 130
burst time = 50
如何计算每个流程的等待时间和周转时间? 系统应该是非抢占式的(该过程获取CPU直到完成)。 另外:该系统中有4个逻辑处理器。
假设systemTime是当前系统的正常运行时间,而arrivalTime是相对于它的。 即:到达时间为0表示该过程在系统启动时开始; 到达时间130表示系统启动后启动过程130个单元。
这是正确的: waitingTime = (systemTime - arrivalTime)
?
我的理由是systemTime - arrivalTime
是进程在fcfs队列中等待使用CPU的时间(或者这是错误的?)
对于周转时间,我想的是: turnaroundTime = burstTime + waitingTime
,因为等待时间和突发时间应该是完成该过程的总时间。 虽然我再一次不知道我的直觉是否正确。
任何和所有读数将不胜感激!
对于非抢占式系统,
waitingTime = startTime - arrivalTime
turnaroundTime = burstTime + waitingTime = finishTime- arrivalTime
startTime =进程开始执行的时间
finishTime =进程完成执行的时间
您可以跟踪系统中当前经过的时间( timeElapsed
)。 在开始时将所有处理器分配给进程,并执行直到最短进程完成执行。 然后将此处理器分配给队列中的下一个进程。 执行此操作直到队列为空并且所有进程都执行完毕。 此外,每当进程开始执行时,重新启动其startTime
,完成后,记录其finishTime
(两者都与timeElapsed
相同)。 这样你就可以计算出你需要的东西。
wt = tt - cpu tm.
Tt = cpu tm + wt.
wt
是等待时间, tt
是周转时间。 Cpu时间也称为突发时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.