计算(非抢占式)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 - arrivalTime

turnaroundTime = burstTime + waitingTime = finishTime- arrivalTime

startTime =进程开始执行的时间

finishTime =进程完成执行的时间

您可以跟踪system(timeElapsed)中当前经过的时间。首先将所有处理器分配给一个进程,然后执行直到最短的进程完成为止。然后,将这个空闲的处理器分配给队列中的下一个进程。这样做直到队列为空,

并且

所有进程都已执行完毕。另外,每当一个进程开始执行时,便对其进行重新startTime记录,并在完成时记录其finishTime(与相同timeElapsed)。这样,您就可以计算出所需的内容。

以上是 计算(非抢占式)FCFS队列中的等待时间和周转时间 的全部内容, 来源链接: utcz.com/qa/436185.html

回到顶部