Кіріспе
Тапсырмалар немесе деректер ағыны үшін жоспарлау алгоритмі. Салмақталған дөңгелек робин (WRR) – деректер ағыны үшін желілік жоспарлаушы, сонымен қатар процестерді жоспарлау үшін де қолданылады. Салмақталған дөңгелек робин – дөңгелек робин жоспарлауының жалпыланған түрі. Ол кезектер немесе тапсырмалар жиынтығына қызмет көрсетеді. Дөңгелек робин кезектер немесе тапсырмалар бойынша айналып өтеді және әр айналымда бір қызмет мүмкіндігін ұсынады, ал салмақталған дөңгелек робин әр кезекке немесе тапсырмаға конфигурацияланған салмағымен белгіленгендей, белгілі бір санда мүмкіндіктер береді, бұл әр кезекке немесе тапсырмаға бөлінетін сыйымдылық үлесіне әсер етеді. Компьютерлік желілерде қызмет мүмкіндігі – таңдалған кезек бос болмаса, бір пакеттің жіберілуі болып табылады. Барлық пакеттердің мөлшері бірдей болса, WRR – жалпыланған процессорды бөлісудің (GPS) ең қарапайым жуықтауы. WRR-дің бірнеше нұсқасы бар. Бастылары – классикалық WRR және араластырылған WRR.
Weighted round robin (WRR) is a network scheduler for data flows, but also used to schedule processes. Weighted round robin is a generalisation of round robin scheduling. It serves a set of queues or tasks. Whereas round robin cycles over the queues or tasks and gives one service opportunity per cycle, weighted round robin offers to each a fixed number of opportunities, as specified by the configured weight which serves to influence the portion of capacity received by each queue or task. In computer networks, a service opportunity is the emission of one packet, if the selected queue is non empty. If all packets have the same size, WRR is the simplest approximation of generalized processor sharing (GPS). Several variations of WRR exist. The main ones are the classical WRR, and the interleaved WRR.
Негізгі қағидалар
WRR желілік кестелеуші ретінде ұсынылады. Оны ұқсас тәсілмен тапсырмаларды жоспарлау үшін де пайдалануға болады. Салмақты дөңгелек робиндік желілік кестелеушінің кіріс кезектері болады, әрбір кезекке салмақ деп аталатын оң бүтін сан сәйкес келеді. WRR кестелеушісі циклдік мінез-құлыққа ие. Әрбір циклда әрбір кезекте шығару мүмкіндіктері болады. Әртүрлі WRR алгоритмдері осы мүмкіндіктерді цикл ішінде қалай бөлуге байланысты ерекшеленеді.
Мысал
Үш кезек және тиісті салмағы бар жүйе қарастырыңыз. Бірінші кезекте 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) тек кезектер пакет жіберуге рұқсат етіледі, бірақ бос болғандықтан, тек C пакеті жіберіледі, ал төртінші және бесінші раундтарда тек D,E пакеттері жіберіледі. Содан кейін екінші цикл басталады, онда F,W,G пакеттері жіберіледі.
With interleaved WRR, the first cycle is split into 5 rounds (since ). In the first one (r=1), one packet from each queue is sent (A,U,X), in the second round (r=2), another packet from each queue is also sent (B,V,Y), in the third round (r=3), only queues are allowed to send a packet (, and ), but since is empty, only C from is sent, and in the fourth and fifth rounds, only D,E from are sent. Then starts the second cycle, where F,W,G are sent.
Қасиеттері
Дөңгелек робин сияқты, салмақты дөңгелек робин жоспарлауы қарапайым, іске асыру оңай, жұмысты үнемдейтін және аштықтан сақтайтын болып келеді. Пакеттерді жоспарлау кезінде, егер барлық пакеттердің мөлшері бірдей болса, WRR және IWRR жалпыланған процессорды бөлісуге жуықтап келеді: кезек, барлық кезектер белсенді болса, жолақтың ұзақ мерзімді бөлігін алады, ал GPS әрбір бос емес кезектен өте кішкентай мөлшердегі деректерді қызмет көрсетеді және осы бөлігін кез келген уақыт аралығында ұсынады. Егер кезектерде әртүрлі ұзындықтағы пакеттер болса, әрбір кезекке тиесілі жолақтың үлесі салмаққа ғана емес, сонымен қатар пакеттердің мөлшеріне де байланысты болады. Егер әрбір кезек үшін орташа пакет мөлшері белгілі болса, әрбір кезек жолақтың ұзақ мерзімді бөлігін алады. Егер мақсат әрбір кезекке байланыс сыйымдылығының белгілі бір үлесін беру болса ( ), біреу IWRR-де WRR-ге қарағанда сыныптар бойынша импульстар кішкентай болғандықтан, бұл нашар жағдайдағы кешігудің азаюын білдіреді.
Since IWRR has smaller per class bursts than WRR, it implies smaller worst case delays.
Шектеулер мен жақсартулар
Желілік пакеттерді жоспарлау үшін WRR алғаш рет 1991 жылы Katevenis, Sidiropoulos және Courcoubetis ұсынды, әсіресе белгілі бір мөлшердегі пакеттерді (жасушаларды) пайдаланатын ATM желілерінде жоспарлау үшін. Салмақты дөңгелек тізбекке қоюдың негізгі кемшілігі – әрбір қызмет класына арналған жолақтың дұрыс пайызын тек барлық кезектердегі пакеттердің мөлшері бірдей болғанда немесе орташа пакет мөлшері алдын ала белгілі болғанда ғана қамтамасыз етеді. Әртүрлі мөлшердегі пакеттері бар IP желілерінде GPS-ке жуық болу үшін салмақ коэффициенттерін пакет мөлшеріне қарай түзету қажет. Бұл орташа пакет мөлшерін бағалауды талап етеді, WRR арқылы GPS-тің жақсы жуықтауын тәжірибеде қол жеткізуді қиындатады. Дефициттік дөңгелек тізбекке қою – бұл WRR-дің кейінгі нұсқасы, ол әрбір қосылымның орташа пакет мөлшерін алдын ала білмей GPS-ке жақсы жуықтауға мүмкіндік береді. Сонымен қатар, жоғарыда аталған кемшіліктерді жоятын тиімді жоспарлау әдістері енгізілді (мысалы, салмақты әділ жоспарлау).