Планирование посылки ввода-вывода процессора с помощью Round Robin - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь понять логику c за расписанием ЦП и IO в параметре Round Robin.

Вопрос 1. Что произойдет, если я получу запрос IO в середине кванта времени процесса ?

Time Quantum: 500ms
IO Burst Times: 800ms

Вход теста:

Arrival, PID, Runtime, Exchange_i
100 43 1000 100 700
200 42 300 100 200 300

В вышеприведенном случае Exchange_i ссылается на время этого процесса, в течение которого процесс запросит 800 мс времени ввода-вывода.

Таким образом, для процесса 43, когда процесс выполняется в течение 100 мс, он запрашивает 800 мс времени ввода-вывода. Когда он работает в течение 700 мс, он запрашивает еще 800 мс времени ввода-вывода. Затем он будет работать в течение еще 300 мс, чтобы иметь общее время выполнения 1000 мс

Для процесса 42, когда процесс выполняется в течение 100 мс, он запросит 800 мс времени ввода-вывода. Когда он работает в течение 200 мс, он запрашивает еще 800 мс времени ввода-вывода. Когда он работает в течение 300 мс, он запрашивает еще 800 мс времени ввода-вывода.

Правильный вывод следующий:

PID, Total runtime, Total ready time, total block time
43 1000 0 1800
42 300 0 3800

Общее время готовности относится к общему времени, в течение которого процесс находился Готовая очередь. Общее время блокировки относится к общему времени, в течение которого процесс находился в заблокированной очереди.

Я пытался отобразить это на диаграмме Ганта, но я не уверен, что мои логики c правильны, как и я не получить правильное общее время блокировки для любого из процессов.

Из того, что я собрал, процесс 42 будет находиться в заблокированной очереди только тогда, когда он запрашивает время ввода-вывода, которое составляет 800 мс * 2 = 1600. Где оставшееся время пришло? Я также не знаю, как процесс 43 имеет общее время блокировки 3800.

Я пытался посмотреть это видео, но я все еще в замешательстве. https://www.youtube.com/watch?v=1d8r3M_tVXw

Примечание: мс - это просто единицы измерения, которые я использовал. На самом деле я просто имею в виду единицы времени, поскольку пытаюсь это запрограммировать.

...