コンテンツへスキップ
uencoder

Starvation

スタベーション(餓死)は、スケジューリングポリシーやロック競合のせいでスレッドが長期間リソースを獲得できない状態である。デッドロックではないが、公平性が失われる。

目的

並行処理における飢餓による不公平さとその防御を理解する。スケジューリングの公平性の問題である。

メカニズム

高優先度スレッドが絶えず割り込むか、ロック競合で低優先度スレッドが無期限に待たされ続ける。防御策はフェアロック(FIFO)、優先度エイジング、ロック保持時間の制限である。

ユースケース

  • 並行処理のフェアネス
  • スケジューリングの分析
  • ロックの設計

関連ツール

References