スタベーション(すたべーしょん)
マルチタスクOSのタスク管理やスケジューリングにおいて、優先度の低いプロセスや処理時間の長いタスクが、他の処理に妨げられて必要な計算機資源(CPU時間やメモリなど)をいつまでも獲得できず、実行が先送りされ続ける現象。日本語では飢餓状態ともいい、特に資源の割当てに着目してリソーススタベーションと呼ぶこともある。
詳細解説
優先度順スケジューリングで優先度の高いタスクが次々に到着する場合や、処理時間順スケジューリングで短い処理が絶えず投入される場合に発生しやすくなります。到着順方式やラウンドロビン方式のように、待っていれば必ず順番が巡ってくる方式では原則として起こりません。
似た状況にデッドロックがありますが、デッドロックは複数のプロセスが互いに相手の保持する資源の解放を待ち合って全員が完全に停止するのに対し、スタベーションは他の優先される処理自体は進行しているにもかかわらず、特定の処理だけが取り残される点で異なります。対策としては、待ち時間の長さに応じてプロセスの優先度を段階的に引き上げるエージング(aging)という手法が用いられます。
スタベーションが問われた過去問
- 2023(R5)秋 午前II 問8スケジューリングアルゴリズムにおける,リソーススタベーションに関する記述として,適切なものはどれか。