Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700363.doc
Скачиваний:
16
Добавлен:
01.05.2022
Размер:
3.69 Mб
Скачать

Дисциплина планирования rr

Дисциплина планирования загрузки процессора RR, которая также известна под названием круговое планирование, карусельное планирование, циклическое планирование, является усовершенствованием дисциплины FIFO. Цель усовершенствования – реализовать на базе дисциплины FIFO новую дисциплину планирования с переключением, обеспечивающую примерно равное распределение процессорного времени между конкурирующими процессами и способную обслуживать интерактивные процессы.

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

Таким образом, все готовые к выполнению процессы выполняются поочередно, небольшими временными квантами, что создает у пользователя иллюзию одновременного выполнения всех процессов и позволяет обеспечить приемлемое время реакции для интерактивных процессов.

Работа дисциплины RR поясняется на рис. .4.

Рис.4. Планирование по принципу RR

Интересно отметить, что при одинаковой для всех процессов величине временного кванта, дисциплина RR неявно отдает предпочтение более коротким процессам, так как они завершаются быстрее длинных – за меньшее число временных квантов. Но при этом не происходит ущемления интересов более длинных процессов – они, как и короткие процессы, регулярно попадают на выполнение.

Рассмотрим теперь более детально выполнение интерактивного процесса при использовании кругового планирования. Интерактивный процесс в ходе работы переходит между состояниями готовности, выполнения и блокировки, как показано на рис. .5.

Рис.5. Переходы между состояниями интерактивного процесса при планировании RR

В основе работы интерактивных процессов лежит постоянный диалог программы и пользователя. Поэтому, интерактивный процесс по ходу работы обязательно перейдет в состояние ожидания пользовательского ввода (переход 1 на рис. .5), после чего он в течение некоторого времени не будет участвовать в конкуренции за процессор, ожидая завершение пользовательского ввода. Как только пользователь завершает ввод, процесс перейдет в состояние готовности (переход 2 на рис. .5) и будет ожидать процессор для обработки пользовательского ввода. По ходу обработки пользовательского ввода, процесс может еще несколько раз переходить между состояниями исполнения и готовности. В конечном итоге, процесс завершит обработку текущего пользовательского ввода и перейдет в состояние ожидания нового вода (переход 3 на рис. .5).

Наиболее критичным параметром при работе интерактивных процессов является величина задержки ответа (см. рис. .5).

Задержка ответа это интервал времени от момента перехода процесса в состояние готовности после завершения пользовательского ввода, до момента, когда процесс обработает текущий ввод и подготовится к новому пользовательскому вводу.

Задержка ответа для конкретного процесса является случайной величиной, поэтому более информативной является средняя величина задержки ответа по всем процессам, полученная за достаточно большое время. Величина средней задержки ответа зависит от многих факторов, среди них:

  • число процессов, выполняющихся в системе в данное время;

  • плотность распределения вероятности для величины процессорного времени, требуемого для обработки пользовательского ввода;

  • величина кванта времени , на который процессам выделяется процессор.

Очевидно, что из всех этих факторов только третий – величина временного кванта, может произвольно вирироваться с целью сокращения задержки ответа. Интуитивно понятно, что квант времени не должен быть слишком малым, поскольку при этом слишком большая доля процессорного времени уйдет на переключение контекста, однако квант времени не должен быть и слишком большим, поскольку при этом готовым процессам придется слишком долго ждать освобождения процессора. Выполним анализ влияния величины кванта времени на величину средней задержки ответа.