繁体   English   中英

计算(非抢占式)FCFS队列中的等待时间和周转时间

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM