gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:39:03 24 4
gpt4 key购买 nike

我有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 是相对于此的。即:arrivalTime 为 0 表示进程在系统启动时启动; arrivalTime 为 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 相同)。这样你就可以计算出你需要什么。

关于algorithm - 计算(非抢占式)FCFS 队列中的等待时间和周转时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13094558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com