【すけじゅーりんぐあるごりずむ】
スケジューリングアルゴリズム とは?
最終更新:
💡 実行できるタスクへ、CPUの時間をどう配る?
実行できるタスクから次に動かすものを選び、CPUなどの資源を割り当てるルール。応答時間・処理量・公平性・期限などの目的に応じて方式が異なり、現実のOSは複数CPUやタスクの状態も考慮します。
📌 このページのポイント
スケジューリングは何を決めるの?
どんな基本方式がある?
ラウンドロビンなら全員同じ時間?
各回に使える時間の上限を決める方法だよ。早く終わったりI/O待ちになったりすれば、その枠を全部使うとは限らない。LinuxのSCHED_RRは同じ優先度のタスク間で交代する方式で、全タスクが同じ扱いではないんだ。
何を基準に良し悪しを比べる?
操作への応答、処理を終えるまでの時間、処理量、公平性、期限などだよ。切り替えにもコストがあり、優先度の低い対象が進まないこともある。目的や仕事の特徴に合うかを確認しよう。
Linuxはどの方式を使う?
もっと詳しく知りたい人へ
図の順番は実際のOSでも同じ?
図は全タスクが最初から実行可能で、I/O待ちも切り替えコストもない、1つの実行枠の例です。実際には途中の到着、待ち状態、複数CPU、優先度やポリシーなどで順番が変わります。
まとめ:ざっくりこれだけ覚えればOK!
「スケジューリングアルゴリズム」って出てきたら「実行可能なタスクへ資源を配るルール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Scheduling Algorithm」 = 実行や資源の割り当てを決める手順
💬 Scheduleは予定や割り当てを組むことです。CPUの説明と、ジョブや通信の割り当てでは対象や制約が違います。