Введение

Алгоритм, используемый планировщиками процессов и сетевыми планировщиками в вычислительных системах. Планирование в вычислительных системах.

Round robin (RR) – один из алгоритмов, используемых планировщиками процессов и сетевыми планировщиками в вычислительных системах. В общем случае, каждому процессу выделяются временные интервалы (также известные как кванты времени) равной длительности в циклическом порядке, обрабатывая все процессы без приоритета (также известный как циклический режим работы). Планирование методом Round robin просто, легко реализуется и исключает ситуацию, когда процесс не получает ресурсов (предотвращает "голодание"). Этот метод может применяться для решения других задач планирования, например, планирования передачи пакетов данных в компьютерных сетях. Это концепция операционной системы. Название алгоритма происходит от принципа "каждому по очереди", известного из других областей, где каждый участник получает равную долю чего-либо поочередно.

Планирование сетевых пакетов

В коммутации пакетов с наилучшими усилиями и других схемах статистического мультиплексирования, планирование методом "каждый получает по очереди" может использоваться как альтернатива очереди "первым пришел – первым обслужен". Мультиплексор, коммутатор или маршрутизатор, обеспечивающий планирование методом "каждый получает по очереди", имеет отдельную очередь для каждого потока данных, при этом поток данных может быть идентифицирован по адресам источника и назначения. Алгоритм позволяет каждому активному потоку данных, имеющему пакеты в очереди, поочередно передавать пакеты по общему каналу в периодически повторяющемся порядке. Планирование сохраняет загрузку, то есть, если в одном потоке нет пакетов, его место займет следующий поток данных. Таким образом, планирование стремится предотвратить простаивание ресурсов канала связи. Планирование методом "каждый получает по очереди" обеспечивает максимальную справедливость, если пакеты данных имеют одинаковый размер, поскольку приоритет в планировании отдается потоку данных, который ожидает дольше всего. Это может быть нежелательно, если размер пакетов данных существенно различается между разными заданиями. Пользователь, генерирующий большие пакеты, будет иметь преимущество перед другими пользователями. В этом случае предпочтительнее использовать справедливое планирование. Если предлагается гарантированное или дифференцированное качество обслуживания, а не только связь с наилучшими усилиями, следует рассмотреть планирование с дефицитом (DRR), взвешенное планирование методом "каждый получает по очереди" (WRR) или взвешенное справедливое планирование (WFQ). В сетях множественного доступа, где несколько терминалов подключены к общему физическому носителю, планирование методом "каждый получает по очереди" может обеспечиваться схемами доступа к каналу с передачей маркера, такими как Token Ring, или опросом/резервированием ресурсов с центральной станции управления. В централизованной беспроводной пакетной радиосети, где множество станций используют один частотный канал, алгоритм планирования в центральной базовой станции может резервировать временные слоты для мобильных станций методом "каждый получает по очереди", обеспечивая справедливость. Однако, если используется адаптация канала, передача определенного объема данных "дорогостоящим" пользователям займет значительно больше времени, чем другим, поскольку условия канала различаются. Было бы эффективнее подождать улучшения условий канала или, по крайней мере, отдать приоритет в планировании менее "дорогостоящим" пользователям. Планирование методом "каждый получает по очереди" не учитывает это. Более высокая пропускная способность и эффективность использования спектра системы могут быть достигнуты с помощью планирования, зависящего от канала, например, пропорционально справедливого алгоритма или планирования максимальной пропускной способности. Следует отметить, что последнее характеризуется нежелательным "голоданием" в планировании. Этот тип планирования является одним из самых базовых алгоритмов для операционных систем в компьютерах и может быть реализован с помощью структуры данных кольцевого буфера.