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

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

最終更新:
💡 実行できる仕事の中から、優先するものを選ぶ

実行可能な処理に優先度を付け、CPUを使う処理を選ぶ方式。割り込みの有無、低優先度の処理が待ち続ける問題とエイジングを説明します。

📌 このページのポイント
優先度で、実行する仕事を選ぶ実行できる仕事高:仕事 A中:仕事 B低:仕事 CCPUで実行B・Cは待機高優先度が続くと…低優先度が待ち続けることも対策例:待ち時間で優先度を上げる
説明用の単一CPUの例。矢印は今選ばれる仕事です。待機中の仕事の扱いは中断方式や優先度の更新規則によります。
ひよこ ひよこ
優先度スケジューリングは、先に来た処理から動かす?
ペンギン先生 ペンギン先生
到着順だけでなく、優先度を使って選ぶよ。CPUを使える状態の仕事がいくつかあるとき、どれを先に実行するかを決める方式なんだ。
ひよこ ひよこ
実行中に、もっと優先度が高い仕事が来たら?
ペンギン先生 ペンギン先生
今の仕事を中断して切り替える方式と、中断せずに次の選択のときに比べる方式があるよ。それぞれプリエンプティブ、ノンプリエンプティブと呼ぶんだ。
ひよこ ひよこ
低い優先度の仕事は、いつか動く?
ペンギン先生 ペンギン先生
高優先度の仕事が来続けると、いつまでも実行されない可能性があるよ。これが飢餓状態。優先する仕事があることと、すべての仕事に機会を与えることを両方考える必要があるんだ。
ひよこ ひよこ
待ち続ける仕事には、どう対応する?
ペンギン先生 ペンギン先生
代表的な考え方がエイジングだよ。待つ時間が長くなるほど優先度を上げる。ほかにも、同じ優先度の仕事を順に切り替えるなど、目的に合わせて方式を組み合わせるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「優先度スケジューリング」って出てきたら「実行できる処理に優先度を付け、CPUを使う順番を決めること」と思えばだいたいOK!
📖 おまけ:英語の意味
「Priority scheduling」 = 優先度に基づく実行の順番決め
💬 優先度の数字の大小と、優先順位の高さの関係は方式によって違います。数字が大きいほうが必ず先という意味ではありません。

参考資料

← 用語集にもどる