Среднее время ожидания при циклическом планировании

Время ожидания определяется как время ожидания каждого процесса, прежде чем он получит свой временной отрезок. В алгоритмах планирования, таких как 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

  • Я выбираю 40, потому что, после 40 А никогда не ждет. Он просто получает свои временные срезы и продолжается и продолжается.
  • Выберите 5, потому что A потратил в процессе ранее между 30 и 35.
  • 0 - время начала.

Что ж, я сомневаюсь в этой формуле, поскольку почему было 15 А 20 не учтено? Интуитивно я не могу понять, как это дает нам время ожидания для A, когда мы учитываем только предпоследнее выполнение, а затем вычитаем время прибытия.

По моему мнению, время ожидания для A должно быть:

  • Окончательное время начала - (сумма всех затрат времени на обработку)

Если эта формула неверна, почему?

Пожалуйста, помогите прояснить мое понимание этой концепции.

6
задан Senthil Kumaran 22 December 2010 в 06:42
поделиться