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