リソーススタベーション
スタベーションは、通常、単純すぎるスケジューリングアルゴリズムによって引き起こされる。例えば、マルチタスクシステムで、最初の2つのタスクが常に切り替わり、3つ目のタスクが実行されない場合、3つ目のタスクがCPU時間を奪われていることになる。カーネルの一部であるスケジューリングアルゴリズムは、リソースを公平に割り当てることを目的としている。つまり、どのプロセスも必要なリソースを永久に欠いてしまわないようにリソースを割り当てるべきである。
オペレーティングシステムのスケジューラーの多くは、プロセスの優先度という概念を採用している。優先度の高いプロセスAは、優先度の低いプロセスBよりも先に実行される。優先度の高いプロセス(プロセスA)がブロックして一度も収まらなかった場合、優先度の低いプロセス(B)は(システムによっては)スケジュールされることはなく、スタベーション状態に陥いる。さらに優先度の高いプロセスXがあって、それがプロセスBの結果に依存している場合、プロセスXはシステムの中で最も重要なプロセスであるにもかかわらず、決して終了しないかもしれない。このような状態を「優先順位の逆転」という。