リソーススタベーション
最近のスケジューリングアルゴリズムでは、どのプロセスもスタベーション状態に陥らないように、重要な資源(多くはCPU時間)を最低限確保することを保証するコードが含まれているのが普通である。
コンピュータ・ネットワーク、特にワイヤレス・ネットワークでは、スケジューリング・アルゴリズムがスタベーション状態に陥ることがある。例えば、最大スループットスケジューリングなどである。
スタベーションは、通常、プロセスのフリーズを引き起こすデッドロックが原因である。2つ以上のプロセスがデッドロックになるのは、それぞれのプロセスが何もせず、同じセットの他のプログラムが占有するリソースを待っているときとなる。一方、あるプロセスが飢餓状態に陥るのは、他のプロセスに継続的に与えられているリソースを待っているときである。スタベーションフリーは、デッドロックがないことよりも強い保証である。2つのプロセスのうち1つをクリティカルセクションに入れることを選択しなければならず、任意に1つを選択する相互排除アルゴリズムは、デッドロックフリーではあるが、スタベーションフリーではない。
スタベーションの解決策として考えられるのは、エイジング技術を併用した優先キューによるスケジューリングアルゴリズムである。エイジングとは、システム内で長時間待機しているプロセスの優先度を徐々に上げていく技術である。