リソーススタベーション 【resource starvation】 資源飢餓
概要
リソーススタベーション(resource starvation)とは、マルチタスク処理など複数の主体が資源を共有する状況で、ある主体が必要とする資源を獲得できない状況が継続すること。あるプロセスがCPU実行時間をまったく割り当ててもらえない状況などが該当する。マルチタスクに対応したオペレーティングシステム(OS)では、複数のプログラムを同時に実行状態とすることができ、CPUの実行時間を細かく分割して、順繰りに実行するプロセスを切り替えていくことにより複数のプロセスの処理を並行して実行する。
この実行時間を割り当てるスケジューリングの方法に問題があると、特定のプロセスにまったく実行時間が割り当てられず、待機状態のまま処理が進まない状態に陥ることがある。このような状況をリソーススタベーションという。
例えば、「優先度が高いプロセスに優先的に実行時間を割り当てる」ルールで、優先度の高いプロセスが2つ、低いプロセスが1つある場合、優先度の高い2つの間でのみCPU割り当ての切り替えが起こり、優先度の低いプロセスにはいつまで経っても順番が回って来ない。
リソーススタベーション現象はCPUの実行時間の割り当てだけでなく、2つのプロセスが互いに相手方が占有する資源(メモリ領域など)の解放を待って両者とも待機状態から進まなくなってしまう「デッドロック」などによっても生じる。より一般的には、無線通信における周波数帯の占有時間の割り当てなど、同じ資源を複数の主体で共有して切り替えて使用する様々な状況で生じる。
(2024.2.20更新)