Расчет времени ожидания и времени выполнения в (непереходной) очереди 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
как я могу рассчитать время ожидания и время выполнения для каждого процесса? Система должна быть непереходной (процесс получает процессор, пока он не будет сделан). Также: в этой системе есть 4 логических процессора.
предположим systemtime является текущей работоспособности системы, и arrivalTime относительно этого. ie: время прибытия 0 означает, что процесс начинается, когда система делает; время прибытия 130 означает, что процесс началась 130 единиц после запуска системы.
это правильно: waitingTime = (systemTime - arrivalTime)
?
мои рассуждения для мышления это то, что systemTime - arrivalTime
время ожидания процесса в очереди fcfs для использования процессора (или это неправильно?)
и для времени оборота я думал что-то вроде: turnaroundTime = burstTime + waitingTime
, так как время ожидания и время взрыва должно быть общее время для завершения процесса. Хотя я снова не знаю, интуиция ли это. правильный.
любые и все чтения были бы весьма признательны!
2 ответов
для непереходной системы,
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 time также называется временем всплеска.