.
алгоритм планирования, в котором работы (задачи или потоки данных) чередуются пропорционально назначенному им весуВзвешенный циклический перебор (WRR ) - это алгоритм планирования, используемый в сетях для планирования потоков данных, но также используемый для планирования процессов.
Взвешенный циклический перебор является обобщением циклического планирования. Он обслуживает набор очередей или задач. В то время как циклический перебор очередей / задач дает одну возможность обслуживания за цикл, взвешенный круговой перебор предлагает каждому фиксированное количество возможностей, рабочий вес, установленный в конфигурации. Затем это позволяет влиять на долю емкости, получаемую каждой очередью / задачей.
В компьютерных сетях возможность обслуживания - это передача одного пакета, если выбранная очередь не пуста. Если все пакеты имеют одинаковый размер, WRR представляет собой простейшее приближение обобщенного совместного использования процессора (GPS).
Существует несколько вариантов WRR. Основными из них являются классический WRR и Interleaved WRR.
WRR представлен ниже как сетевой планировщик. Его также можно использовать для планирования задач аналогичным образом.
Взвешенный планировщик сети с циклическим перебором имеет очередей ввода, . С каждой очередью связано , положительное целое число, называемое весом. Планировщик WRR имеет циклическое поведение. В каждом цикле каждая очередь имеет возможности выбросов.
Различные алгоритмы WRR различаются распределением этих возможностей в цикле.
В классическом WRR планировщик циклически перебирает очереди. Когда выбрана очередь , планировщик будет отправлять пакеты до выброса пакет или конец очереди.
Константа и переменные: const N // Nb очередей const weight [1..N] // вес каждой очереди queues [1..N] // очереди i // индекс очереди c // пакет counter Инструкции :while true doдля i in1.. N do c: = 0 while (не очередь [ i].empty) и (c |
Let - максимальный вес. В IWRR каждый цикл разбивается на раундов. Очередь с весом может отправить один пакет на раунде , только если .
Константа и переменные: const N // Кол-во очередей const weight [1..N] // вес каждой очереди const w_max queues [1..N] // очереди i // индекс очереди r // счетчик раундов Инструкции: while true dofor r in1.. w_max doдля i in1.. N doif(не queue [i].empt y) и (weight [1..N]>= r) затем send (queue [i].head ()) queue [i].dequeue () |
Рассмотрим систему с тремя очередями и соответствующие веса . Рассмотрим ситуацию, когда это 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 циклов. В первом (r = 1 ) отправляется по одному пакету из каждой очереди (A, U, X ), во втором раунде (r = 2 ), также отправляется другой пакет из каждой очереди (B, V, Y ), в третьем раунде (r = 3 ) только очереди разрешено отправлять пакет (,
Планирование задач или процессов может выполняться в WRR аналогично планированию пакетов: при рассмотрении набора
Как и циклический алгоритм, взвешенное циклическое планирование простое, легкое в реализации, экономия работы и отсутствие голодания.
При планировании пакетов, если все пакеты имеют одинаковый размер, то WRR является приближением Общий доступ к процессору : очередь
Если в очередях есть пакеты переменной длины, часть полосы пропускания, полученная каждой очередью, зависит не только от весов, но и от размеров пакетов.
Если средний размер пакетов
.
WRR для Планирование сетевых пакетов было впервые предложено Катевенисом, Сидиропулосом и Куркубетисом в 1991 году специально для планирования в сетях ATM с использованием пакетов (ячеек) фиксированного размера. Основное ограничение взвешенной циклической организации очередей состоит в том, что она обеспечивает правильный процент полосы пропускания для каждого класса обслуживания, только если все пакеты во всех очередях имеют одинаковый размер или когда средний размер пакета известен заранее. В более общем случае IP-сетей с пакетами переменного размера, для приближения GPS весовые коэффициенты должны быть скорректированы на основе размера пакета. Это требует оценки среднего размера пакета, что затрудняет получение хорошего приближения GPS на практике с WRR.
Круговой алгоритм дефицита - это более поздняя разновидность WRR, которая обеспечивает лучшее приближение GPS без предварительного знания среднего размера пакета каждого соединения. Также были введены более эффективные дисциплины планирования, которые справляются с упомянутыми выше ограничениями (например, взвешенная справедливая организация очереди ).