Взвешенный круговой алгоритм - Weighted round robin


Взвешенный круговой алгоритм (WRR) это алгоритм планирования используется в сети для планирования потоков данных, но также используется для планировать процессы.

Взвешенный круговой алгоритм[1] является обобщением Планирование с циклическим перебором. Он обслуживает набор очередей или задач. В то время как циклический перебор очередей / задач дает одну возможность обслуживания за цикл, взвешенный круговой перебор предлагает каждому фиксированное количество возможностей, рабочий вес, установленный в конфигурации. Затем это позволяет влиять на долю емкости, получаемую каждой очередью / задачей.

В компьютерных сетях возможность обслуживания - это отправка одного пакета, если выбранная очередь не пуста. Если все пакеты имеют одинаковый размер, WRR является самым простым приближением обобщенное совместное использование процессора (GPS).

Существует несколько вариантов WRR[2]. Основными из них являются классический WRR и С чередованием WRR.

Алгоритм

Принципы

WRR представлен ниже как сетевой планировщик. Его также можно использовать для планирования задач аналогичным образом.

Планировщик взвешенной циклической сети имеет входные очереди, . В каждую очередь связано , положительное целое число, называемое вес. Планировщик WRR имеет циклическое поведение. В каждом цикле каждая очередь имеет возможности выбросов.

Различные алгоритмы WRR различаются распределением этих возможностей в цикле.

Классический WRR

В классическом WRR [2][3][4]планировщик циклически перебирает очереди. Когда очередь выбран, планировщик будет отправлять пакеты, вплоть до отправки пакет или конец очереди.

Константа и переменные:     const N // Nb очередей const weight [1..N] // вес каждой очереди queues [1..N] // очереди i // индекс очереди c // счетчик пакетов Инструкции:в то время как правда делать     для я в 1 .. N делать        c: = 0 в то время как (не queue [i] .empty) и (c делать            send (queue [i] .head ()) queue [i] .dequeue () c: = c + 1

Чередование WRR

Позволять , быть максимальным весом. В ИВРР [1][5], каждый цикл разбит на раундов. Очередь с весом может выпустить один пакет за один раз только если .

Константа и переменные:     const N // количество очередей const weight [1..N] // вес каждой очереди const w_max queues [1..N] // очереди i // индекс очереди r // счетчик раундов Инструкции:
в то время как правда делать    для р в 1 .. w_max делать         для я в 1 .. N делать            если (не queue [i] .empty) и (вес [1..N]> = r) тогда                send (queue [i] .head ()) queue [i] .dequeue ()

пример

Пример расписания для CWRR и IWRR

Рассмотрим систему с тремя очередями и соответствующие веса . Рассмотрим ситуацию, когда в первой очереди находится 7 пакетов, A, B, C, D, E, F, G, 3 во второй очереди, U, V, W и 2 в третьей очереди X, Y. Предположим, что пакетов больше нет.

В классическом WRR в первом цикле планировщик сначала выбирает и передает пять пакетов в начале очереди,A, B, C, D, E (поскольку ), затем выбирается вторая очередь, , и передает два пакета в начале очереди, U, V (поскольку ), и наконец он выбирает третью очередь, вес которой равен 3, но только два пакета, поэтому он передает X, Y. Сразу после окончания передачи Y, начинается второй цикл, и F, G от передаются, за которыми следуют W от .

При чередовании WRR первый цикл делится на 5 раундов. В первом (г = 1) отправляется по одному пакету из каждой очереди (А, У, Х), во втором туре (г = 2), также отправляется еще один пакет из каждой очереди (B, V, Y), в третьем туре (г = 3), только очереди разрешено отправлять пакет (, и ), но с тех пор пусто, только C от отправляется, а в четвертом и пятом раундах только D, E от посланы. Затем начинается второй цикл, где F, W, G посланы.

Планирование задач

Планирование задач или процессов может выполняться в WRR аналогично планированию пакетов: при рассмотрении набора активные задачи, они планируются циклически, каждая задача получает квант или срез процессорного времени[6][7].

Свойства

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

При планировании пакетов, если все пакеты имеют одинаковый размер, то WRR является приближением Обобщенное разделение процессора[8]: очередь получит долгосрочную часть пропускной способности, равную (если все очереди активны), в то время как GPS обслуживает бесконечно малые объемы данных из каждой непустой очереди и предлагает эту часть на любом интервале.

Если в очередях есть пакеты переменной длины, часть полосы пропускания, получаемая каждой очередью, зависит не только от весов, но и от размеров пакетов.

Если средний размер пакетов известен для каждой очереди , каждая очередь получит долгосрочную часть полосы пропускания, равную . Если цель - дать каждой очереди порция пропускной способности канала (с ) можно установить .


Ограничения и улучшения

WRR для планирования сетевых пакетов был впервые предложен Катевенисом, Сидиропулосом и Куркубетисом в 1991 году. [1], особенно для планирования в сетях ATM с использованием пакетов (ячеек) фиксированного размера. Основное ограничение взвешенной циклической организации очередей состоит в том, что она обеспечивает правильный процент полосы пропускания для каждого класса обслуживания, только если все пакеты во всех очередях имеют одинаковый размер или когда средний размер пакета известен заранее. В более общем случае IP сети с пакетами переменного размера, чтобы приблизиться к GPS, весовые коэффициенты должны быть скорректированы на основе размера пакета. Это требует оценки среднего размера пакета, что затрудняет получение хорошего приближения GPS на практике с WRR. [1].

Круговая система дефицита представляет собой более поздний вариант WRR, который обеспечивает лучшее приближение GPS без предварительного знания среднего размера пакета каждого соединения. Также были введены более эффективные дисциплины планирования, которые устраняют ограничения, упомянутые выше (например, взвешенная справедливая очередь ).

Смотрите также

использованная литература

  1. ^ а б c d Катевенис, М .; Sidgiropoulos, S .; Куркубетис, К. (1991). «Взвешенное циклическое мультиплексирование ячеек в микросхеме коммутатора ATM общего назначения». Журнал IEEE по избранным областям коммуникаций. 9 (8): 1265–1279. Дои:10.1109/49.105173. ISSN  0733-8716.
  2. ^ а б Chaskar, H.M .; Мэдхоу, У. (2003). «Справедливое планирование с настраиваемой задержкой: циклический подход». Транзакции IEEE / ACM в сети. 11 (4): 592–601. Дои:10.1109 / TNET.2003.815290. ISSN  1063-6692.
  3. ^ Брахими, Б .; Aubrun, C .; Рондо, Э. (2006). «Моделирование и имитация политик планирования, реализуемых в коммутаторе Ethernet с использованием цветных сетей Петри»: 667–674. Дои:10.1109 / ETFA.2006.355373. Цитировать журнал требует | журнал = (Помогите)
  4. ^ Ф. Бейкер; Р. Пан (май 2016 г.). «2.2.2. Циклические модели». О постановке в очередь, маркировке и сбросе (Технический отчет). IETF. RFC 7806.
  5. ^ Семерия, Чак (2001). Поддержка дифференцированных классов обслуживания: дисциплины планирования очередей (PDF) (Отчет). стр. 15–18. Получено 4 мая 2020.
  6. ^ Болье, Ален (зима 2017). «Операционные системы реального времени - планирование и планировщики» (PDF). Получено 4 мая 2020.
  7. ^ США 20190266019, Филип Д. Хирш, «Планирование задач с использованием усовершенствованных методов взвешенного циклического перебора», опубликовано 29 августа 2019 г. 
  8. ^ Падение, Кевин (29 апреля 1999 г.). «EECS 122,« Введение в сети связи », лекция 27,« Планирование оптимальных и гарантированных соединений »"". Получено 4 мая 2020.