CPU の割当てを待ち続けるスケジューリング
出典: 令和6年度 秋期 応用情報技術者試験 午前 問16 (IPA)
タスクスケジューリング方式の説明のうち,特定のタスクが CPU 資源の割当てを待ち続ける可能性が最も高いものはどれか。
- ア 各タスクの優先度を決めて,優先度が高い順に実行し,CPU 割当てまでの待ち時間の長さに応じて優先度を徐々に上げていく。
- イ 各タスクを実行可能待ち行列に置かれた順に実行し,一定時間が経過したら実行を中断して実行可能待ち行列の最後尾に加える。
- ウ 処理予定時間が最も短いタスクから順に処理を実行する。現在実行中の処理が終了するか,又は何らかの要因によって中断されたとき,次のタスクを開始する。
- エ タスクがシステムに到着した順に実行可能待ち行列の最後尾に加え,常に実行可能待ち行列の先頭のタスクに CPU を割り当てる。
正解と解説を見る
正解: ウ
- ア: 待ち時間に応じて優先度を上げる (エージング) ので、いつかは必ず CPU が割り当てられます。
- イ: ラウンドロビン方式です。順番に一定時間ずつ実行するので、待ち続けることはありません。
- ウ: 処理時間が短いタスクから実行するので、長いタスクは短いタスクが来るたびに後回しにされ、待ち続ける可能性が最も高くなります。
- エ: 到着順 (FCFS) です。前のタスクが終われば順番が来るので、いつかは必ず実行されます。
ポイント
- 処理時間順 (SJF) では、処理時間の短いタスクが次々に来ると、処理時間の長いタスクはいつまでも後回しにされます (飢餓状態・スタベーション)。
- 待ち時間に応じて優先度を上げる工夫を エージング といい、飢餓状態を防ぎます。