Eksiklik round robin - Deficit round robin

Eksik Round Robin (DRR), Ayrıca Açık Ağırlıklı Round Robin (DWRR), için bir zamanlama algoritmasıdır. ağ planlayıcı. DRR gibi ağırlıklı adil kuyruk (WFQ), ideal paket tabanlı bir uygulama Genelleştirilmiş İşlemci Paylaşımı (GPS) politikası. M. Shreedhar tarafından önerildi ve G. Varghese 1995'te verimli olarak ( O (1) karmaşıklık) ve adil algoritma.[1]

Detaylar

DRR'de, N akışları işleyen bir programlayıcı[a] bir kuantum ile yapılandırılmıştır her akış için. Bu küresel fikir, her turda akışın en fazla gönderebilir bayt ve varsa, kalan kısım bir sonraki tura bildirilir. Bu şekilde sayı akışı ben minimum uzun vadeli veri hızına ulaşacak , nerede bağlantı hızıdır.

Algoritma

DRR, boş olmayan tüm sıraları sırayla tarar. Boş olmayan bir sıra seçildiğinde, açık sayacı kuantum değeri kadar artırılır. Daha sonra, açık sayacının değeri, bu dönüşte gönderilebilecek maksimum bayt miktarıdır: Eğer açık sayacı, kuyruğun başındaki paketin boyutundan (HoQ) büyükse, bu paket gönderilebilir ve değer sayaç, paket boyutuna göre azaltılır. Daha sonra, bir sonraki paketin boyutu, sayaç değeri vb. İle karşılaştırılır. Sıra boşaldığında veya sayacın değeri yetersiz olduğunda, programlayıcı bir sonraki sıraya atlayacaktır. Kuyruk boşsa, açık sayacının değeri sıfırlanır.

Değişkenler ve Sabitler    const integer N // Kuyruk sayısı const tamsayı Q [1..N] // Kuyruk başına kuantum tamsayı DC [1..N] // Kuyruk başına eksiklik sayaç kuyruğu kuyruğu [1..N] // Kuyruklar 
Zamanlama Döngüsüsüre doğru yapmak    için 1..N içindeyim yapmak        Eğer kuyruk değil [i] .empty () sonra            DC [i]: = DC [i] + Q [i] süre(kuyruk değil [i] .empty () ve                         DC [i] ≥ kuyruk [i] .head (). Size ()) yapmak                DC [i]: = DC [i] - kuyruk [i] .head (). Size () gönder (kuyruk [i] .head ()) kuyruk [i] .deque () bitince             Eğer kuyruk [i]. boş () sonra                DC [i]: = 0 eğer biterse        eğer biterse    sonu içinbitince

Performanslar: adalet, karmaşıklık

Diğer GPS benzeri zamanlama algoritmaları gibi, ağırlıkların seçimi ağ yöneticisine bırakılmıştır.

WFQ gibi DRR, paketlerin boyutu ne olursa olsun her akış için minimum bir hız sunar. Ağırlıklı döngüsel programlamada, kullanılan bant genişliği oranı paketin boyutlarına bağlıdır.

Karmaşıklığa sahip WFQ zamanlayıcı ile karşılaştırıldığında O (günlük (n)) (n aktiflerin sayısı akışlar / kuyruklar ), DRR'nin karmaşıklığı O (1), eğer kuantum bu akışın maksimum paket boyutundan daha büyük. Bununla birlikte, bu verimliliğin bir maliyeti vardır: gecikme, yani İdeal GPS'e olan mesafe DRR'de WFQ'dan daha büyüktür. [2]

Uygulamalar

Eksik döngüsel robin algoritmasının bir uygulaması Patrick McHardy tarafından yazılmıştır. Linux çekirdeği[3] ve altında yayınlandı GNU Genel Kamu Lisansı.

Cisco ve Juniper yönlendiricilerinde, DRR'nin değiştirilmiş sürümleri uygulanır: DRR'nin gecikmesi bazı trafik sınıfları için daha büyük olabileceğinden, bu değiştirilmiş sürümler bazı kuyruklara daha yüksek öncelik verirken diğerlerine standart DRR algoritması sunulur.[4][5]

Ayrıca bakınız

Notlar

  1. ^ Akışlar ayrıca kuyruklar, sınıflar veya oturumlar olarak da adlandırılabilir

Referanslar

  1. ^ Shreedhar, M .; Varghese, G. (Ekim 1995). "Eksik döngüsel robin kullanarak verimli adil kuyruk oluşturma". ACM SIGCOMM Bilgisayar İletişim İncelemesi. 25 (4): 231. doi:10.1145/217391.217453. ISSN  0146-4833.
  2. ^ Lenzini, L .; Mingozzi, E .; Stea, G. (2002). "Aliquem: O (1) karmaşıklığında daha iyi gecikme ve adalet elde etmek için yeni bir DRR uygulaması". IEEE 2002 Onuncu IEEE Uluslararası Hizmet Kalitesi Çalıştayı (Kat. No. 02EX564). s. 77. doi:10.1109 / IWQoS.2002.1006576. ISBN  978-0-7803-7426-3.
  3. ^ "DRR Linux çekirdek ağ zamanlayıcı modülü". kernel.org. Alındı 2013-09-07.
  4. ^ Lenzini, Luciano; Mingozzi, Enzo; Stea Giovanni (2007). "Değiştirilmiş Deficit Round Robin Zamanlayıcılarının Performans Analizi". IOS Yüksek Hızlı Ağlar Dergisi.
  5. ^ Lenzini, Luciano; Mingozzi, Enzo; Stea Giovanni (2006). Değiştirilmiş Deficit Round Robin Zamanlayıcılarının Performans Analizi (Teknik rapor). Dipartimento di Ingegneria della Informazione, Pisa Üniversitesi.

Dış bağlantılar