计算(非抢占式)FCFS队列中的等待时间和周转时间
我有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 - arrivalTimeturnaroundTime = burstTime + waitingTime = finishTime- arrivalTime
startTime =进程开始执行的时间
finishTime =进程完成执行的时间
您可以跟踪system(timeElapsed
)中当前经过的时间。首先将所有处理器分配给一个进程,然后执行直到最短的进程完成为止。然后,将这个空闲的处理器分配给队列中的下一个进程。这样做直到队列为空,
并且
所有进程都已执行完毕。另外,每当一个进程开始执行时,便对其进行重新startTime
记录,并在完成时记录其finishTime
(与相同timeElapsed
)。这样,您就可以计算出所需的内容。
以上是 计算(非抢占式)FCFS队列中的等待时间和周转时间 的全部内容, 来源链接: utcz.com/qa/436185.html