Алгоритм циклического планирования с примером
⚡ Умное резюме
Алгоритм циклического планирования (Round-Robin Scheduling) — это самый старый и простейший алгоритм вытеснения ЦП, при котором каждый готовый процесс выполняется в течение фиксированного промежутка времени в циклической очереди, обеспечивая справедливое выполнение без «голодания» при многозадачности.

Что такое циклическое планирование?
Название этого алгоритма происходит от принципа циклического обслуживания, при котором каждый человек по очереди получает равную долю чего-либо. Это самый старый и простой алгоритм планирования, который в основном используется для многозадачности.
В алгоритме циклического планирования каждая готовая задача выполняется по очереди только в циклической очереди в течение ограниченного промежутка времени. Этот алгоритм также обеспечивает выполнение процессов без возникновения «голодания» (зависания задач).
Характеристики циклического планирования
Вот важные характеристики циклического планирования:
- Алгоритм Round Robin — это алгоритм с вытеснением.
- Процессор переключается на следующий процесс через фиксированный промежуток времени, который называется временным квантом/временным срезом.
- Вытесняемый процесс добавляется в конец очереди.
- Модель циклического распределения нагрузки (Round Robin) — это гибридная модель, работающая на основе тактового сигнала.
- Временной интервал должен быть минимальным и выделяться для конкретной задачи, которую необходимо обработать. Однако он может отличаться в зависимости от операционной системы.
- Это алгоритм реального времени, который реагирует на событие в течение определенного временного интервала.
- Алгоритм кругового распределения — один из старейших, самых справедливых и простых алгоритмов.
- Это широко используемый метод планирования в традиционных операционных системах.
Пример циклического планирования
Рассмотрим следующие три процесса:
| Очередь процесса | Время взрыва |
|---|---|
| P1 | 4 |
| P2 | 3 |
| P3 | 5 |
Шаг 1) Выполнение начинается с процесса P1, время пакета которого равно 4. Здесь каждый процесс выполняется в течение 2 секунд. P2 и P3 все еще находятся в очереди ожидания.
Шаг 2) В момент времени = 2, P1 добавляется в конец очереди, и P2 начинает выполнение.
Шаг 3) В момент времени = 4, выполнение задачи P2 прерывается, и задача P3 добавляется в конец очереди.
Шаг 4) В момент времени = 6, выполнение задачи P3 прерывается, и задача P1 добавляется в конец очереди.
Шаг 5) В момент времени = 8, время выполнения P1 составляет 4. Выполнение завершено. P2 начинает выполнение.
Шаг 6) P2 имеет время выполнения 3. Он уже выполнился в течение 2 интервалов. В момент времени = 9 P2 завершает выполнение. Затем P3 начинает выполнение до своего завершения.
Шаг 7) Давайте рассчитаем среднее время ожидания для приведенного выше примера.
Wait time P1 = 0 + 4 = 4 P2 = 2 + 4 = 6 P3 = 4 + 3 = 7
Преимущества циклического планирования
Вот преимущества и достоинства метода планирования по принципу «кругового распределения»:
- Она не сталкивается с проблемами голода или эффекта конвоя.
- Все задания получают справедливое распределение ресурсов ЦП.
- Она рассматривает все процессы без указания приоритетов.
- Если вы знаете общее количество процессов в очереди выполнения, вы также можете предположить наихудшее время ответа для того же процесса.
- Этот метод планирования не зависит от времени выполнения задачи. Именно поэтому его легко реализовать в системе.
- Как только процесс выполняется в течение определенного периода времени, процесс вытесняется, и в течение этого заданного периода времени выполняется другой процесс.
- Позволяет операционной системе использовать метод переключения контекста для сохранения состояний вытесненных процессов.
- Он обеспечивает наилучшую производительность с точки зрения среднего времени отклика.
Недостатки циклического планирования
Вот недостатки/минусы использования алгоритма циклического планирования:
- Если время обработки данных операционной системой невелико, производительность процессора снизится.
- Этот метод уделяет больше времени переключению контекста.
- Его производительность во многом зависит от кванта времени.
- Для процессов невозможно установить приоритеты.
- Круговое планирование не отдает приоритет более важным задачам.
- Это снижает понимание.
- Меньший временной квант приводит к увеличению накладных расходов на переключение контекста в системе.
- Определение корректного временного кванта в этой системе — довольно сложная задача.
Задержка в худшем случае
Этот термин используется для обозначения максимального времени, затраченного на выполнение всех задач.
- dt = Обозначает время обнаружения, когда задача добавляется в список.
- st = Обозначает время переключения с одной задачи на другую
- et = Обозначает время выполнения задачи
Формула:
Tworst = {(dti+ sti + eti ), + (dti+ sti + eti )2 +...+ (dti+ sti + eti )N., + (dti+ sti + eti + eti) N} + tISR
tISR = sum of all execution times







