【ゆうせんどすけじゅーりんぐ】

優先度スケジューリング とは?

💡 VIP優先の行列整理、でも一般客を忘れると大問題
📌 このページのポイント
優先度スケジューリング 待ちキュー 優先度: 高 緊急処理 優先度: 中 通常処理 優先度: 低 バッチ処理 CPU 実行中 完了 ⚠ 飢餓(スタベーション)問題 高優先度が次々来ると 低優先度がずっと待たされる ✨ 解決策: エイジング 待ち時間が長くなるほど優先度を自動的に引き上げる → 全タスクが実行される
優先度スケジューリングのイメージ
ひよこ ひよこ

優先度スケジューリングって、大事な処理を先にやるってこと?

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

そのとおりだよ。病院の救急外来と同じで、重症の患者さんが軽症の人より先に診てもらえるよね。OSでも同じように、緊急度の高いプロセスCPUを優先的に割り当てるんだ。

ひよこ ひよこ

優先度って誰が決めるの?

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

2つのパターンがあるよ。OSが自動的に決める「動的優先度」と、プログラマーやシステムが事前に設定する「静的優先度」だね。Linuxではniceコマンドでプロセスの優先度を変えられるんだ。

ひよこ ひよこ

優先度が低い処理はずっと待たされちゃうの?

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

それが有名な「飢餓(スタベーション)」問題だね。高優先度のタスクが次々来ると、低優先度のタスクは永遠に実行されない可能性があるんだ。1973年にIBMのメインフレームで、低優先度のジョブが数年間放置されてた事例もあるよ。

ひよこ ひよこ

えっ、数年も!? それはどうやって解決するの?

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

「エイジング」という手法が代表的だよ。待ち時間が長くなるほど優先度を少しずつ上げていくんだ。お年寄りが敬われるように、待ち続けたタスクにもチャンスが回ってくる仕組みだね。

ひよこ ひよこ

ラウンドロビンとどっちがいいの?

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

一長一短だよ。ラウンドロビンは公平だけど融通が利かない。優先度方式は柔軟だけど飢餓リスクがある。だから実際のOSでは両方を組み合わせた「多段フィードバックキュー」が使われることが多いんだ。優先度ごとにキューを作り、各キュー内はラウンドロビンで回す方式だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「優先度スケジューリング」って出てきたら「大事な処理を先にやる順番決め」と思えればだいたいOK!
📖 おまけ:英語の意味
「Priority Scheduling」 = 優先度に基づくスケジューリング
💬 priority(優先)+ scheduling(予定組み)で、「大事なものから順に」という仕組みだよ
← 用語集にもどる