ラウンドロビン方式とは、複数の処理対象(プロセス、サーバー、参加者など)に対して、順番に公平な時間やリソースを割り当てていく方式で、「回転木馬(carousel)」のように順番に処理を回していくことから名付けられました。CPUスケジューリング(CPU時間割当)、負荷分散、スポーツのリーグ戦、ミーティングの進行管理など、様々な分野で公平性や効率性を目的として利用されます。
主な用途と具体例
- CPUスケジューリング:
- 複数のプロセスにCPU時間を「タイムスライス(時間割当量)」として分割し、順番に割り当てて、あたかも同時に処理しているように見せるマルチタスクシステムで使われます。
- 一定時間(タイムクォンタム)で処理が中断され、待ち行列の最後尾に移動します。
- 負荷分散 (ロードバランシング):
- Webサーバーなどで、アクセスが集中した際に、複数のサーバーへリクエストを順番に振り分け、特定のサーバーに負荷が集中するのを防ぎます。
- DNSラウンドロビンなどが有名ですが、サーバーの稼働状況を考慮しない欠点もあります。
- コールセンター/オンコール管理:
- 担当者にタスク(電話応対、インシデント対応など)を公平に割り振り、業務過多を防ぎます。
- スポーツ/会議:
- 参加者全員が他の全員と対戦する「総当たり戦(リーグ戦)」の形式を指します。
- 会議で全員に均等な発言時間を割り当てる場合にも使われます。
特徴
- 公平性:すべてのプロセスや参加者に平等に機会が与えられます。
- シンプルさ:実装が比較的容易で分かりやすいです。
- 状況依存:処理時間(タイムクォンタム)の設定や、サーバーの負荷状況を考慮しない場合は、負荷が均等にならないことがあります。

コメント