加重ラウンドロビン
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/17 01:41 UTC 版)
「ラウンドロビン・スケジューリング」の記事における「加重ラウンドロビン」の解説
加重ラウンドロビン(Weighted Round-robin、WRR)は、ベストエフォート型接続のスケジューリング方式である。Generalized Processor Sharing (GPS)方式の最も簡単なエミュレーションでもある。GPSでは空でないコネクションについて無限小(infinitesimal)のデータ量を考慮するのに対して、WRRは空でないコネクションについてパケット数を考慮する(パケット数 = 正規化(加重 / 平均パケットサイズ))。 正規化された加重を得るには、平均パケットサイズを知る必要がある。そうしないとWRRはGPSのエミュレートとは言えない。事前にその値を知っているのが最善であるが、インターネット上で平均パケットサイズを事前に知ることは困難なので、概算の予測を立てるしかないがそれも難しい。WRRの別の問題点として、1回のラウンドで見たときの公平さの欠如がある。 WRR機構(擬似コード): //コネクション毎に1回のラウンドで処理すべきパケット数を計算するfor (each connection) connection[i].normalized_weight = connection[i].weight / connection[i].mean_packet_size; min = findSmallestNormalizedWeight(); for (each connection) connection[i].packets_to_be_served = connection[i].normalized_weight / min; // メインループwhile (true) { for (each non-empty connection) { for (j = 0; j < min(connection[i].packets_to_be_served, connection[i].packets_waiting); j++) { servePacket(connection[i].getPacket()); } }}
※この「加重ラウンドロビン」の解説は、「ラウンドロビン・スケジューリング」の解説の一部です。
「加重ラウンドロビン」を含む「ラウンドロビン・スケジューリング」の記事については、「ラウンドロビン・スケジューリング」の概要を参照ください。
- 加重ラウンドロビンのページへのリンク