Время ожидания определяется как время ожидания каждого процесса, прежде чем он получит свой временной отрезок. В алгоритмах планирования, таких как Shorted Job First и First Come First Serve, мы можем легко найти это время ожидания, просто поставив задания в очередь и посмотрев, сколько времени им пришлось ждать, прежде чем они будут обслужены.
Когда дело доходит до раунда Робина или любых других вытесняющих алгоритмов, мы обнаруживаем, что долго выполняющиеся задания проводят немного времени в ЦП, когда они вытесняются, а затем ждут какое-то время своей очереди для выполнения, и в какой-то момент в свою очередь они выполняются до завершения. Я хотел найти лучший способ понять «время ожидания» заданий в таком алгоритме планирования.
Я нашел формулу , которая дает время ожидания как:
Waiting Time = (Final Start Time - Previous Time in CPU - Arrival Time)
Но я не понимаю аргументация этой формулы. Например, рассмотрим задание A, которое имеет пакетное время 30 единиц, а циклический перебор происходит через каждые 5 единиц. Есть еще два задания B (10) и C (15).
Порядок, в котором они будут обслуживаться, будет следующим:
0 A 5 B 10 C 15 A 20 B 25 C 30 A 35 C 40 A 45 A 50 A 55
Время ожидания для A = 40 - 5 - 0
Что ж, я сомневаюсь в этой формуле, поскольку почему было 15 А 20
не учтено?
Интуитивно я не могу понять, как это дает нам время ожидания для A, когда мы учитываем только предпоследнее выполнение, а затем вычитаем время прибытия.
По моему мнению, время ожидания для A должно быть:
Если эта формула неверна, почему?
Пожалуйста, помогите прояснить мое понимание этой концепции.