【らうんどろびん】

ラウンドロビン とは?

💡 「みんな平等に順番ね」の精神で回すタスク配分術
📌 このページのポイント
ラウンドロビン方式 CPU 順番に実行 タスクA タスクB タスクC タスクD タイムスライス 各タスクに均等な時間 順繰りに回す A→B→C→D→A...
ラウンドロビン方式のイメージ
ひよこ ひよこ

ラウンドロビンって面白い名前だけど、何のこと?

ペンギン先生 ペンギン先生

タスクやリクエストを「順番に1つずつ」均等に割り振る方式だよ。回転寿司に例えると、全員に同じペースでお皿が回ってくるイメージだね。誰かだけたくさん食べるってことがないんだ。

ひよこ ひよこ

どういう場面で使われるの?

ペンギン先生 ペンギン先生

いろんな場面で使われてるよ。OSがプロセスCPU時間を配分するとき、ロードバランサーサーバーにリクエストを振り分けるとき、DNSが複数のIPアドレスを順番に返すときなんかが代表的だね。

ひよこ ひよこ

タイムスライスって何なの?

ペンギン先生 ペンギン先生

1回の順番で割り当てる時間の長さのことだよ。例えば10ミリ秒ずつ割り当てると、プロセスAに10ms、次にBに10ms、次にCに10ms……と回していくんだ。この長さが短すぎると切り替えコストが大きくなり、長すぎると待ち時間が増えるんだよ。

ひよこ ひよこ

欠点はないの?

ペンギン先生 ペンギン先生

全タスクを均等に扱うから、「この処理は急ぎ!」という優先度をつけられないのが弱点だね。緊急のタスクも普通のタスクも同じ扱いになっちゃう。だから優先度スケジューリングと組み合わせて使うことも多いんだよ。

ひよこ ひよこ

ロードバランサーでのラウンドロビンはちょっと違うの?

ペンギン先生 ペンギン先生

基本の考え方は同じだけど、サーバーごとに性能差がある場合は「重み付きラウンドロビン」が使われるよ。性能が2倍のサーバーには2回連続でリクエストを送る、という具合だね。シンプルさを保ちつつ実用的にアレンジされているんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ラウンドロビン」って出てきたら「順番に均等に割り振る方式」と思えればだいたいOK!
📖 おまけ:英語の意味
「Round-Robin」 = 総当たり・順繰り
💬 もともとはフランス語の ruban rond(丸いリボン)が由来とされていて、署名者が分からないよう丸く名前を書いた連判状のことだよ
← 用語集にもどる