デッドロック
複数のプロセスそれぞれが、複数のリソースの中から排他的に1つ以上のリソースを使用するようなシステムを想定する。
2つ以上のプロセスが、
個々のプロセスの完了に必要なリソースを、
互いに排他的に保持してしまうことによって、
それぞれのプロセスが、永久に互いの リソースの解放待ちの状態に陥り、
事実上、システムが停止状態になること
を指す。
マルチプログラミング環境であるプロセスが複数の資源を要求
→資源がすべて同時には使用可能でない
→待ち状態となる
→状態を変えることなく永久に待ち状態となる
待っている資源が他の待ち状態のプロセスに割りついているときに発生しうる
決して起こらない特定の事象を待っている
→デッドロック(deadlock)・死の抱擁(deadly embrace)
deadlock
デッド(dead) + ロック(lock)
排他制御(exclusive control)
行き詰まり
危険領域、クリティカルセクション(critical section)、クリティカルリージョン(critical region)
セマフォ(semaphore)
マルチスレッド(Multithread)
スレッド (thread)
食事する哲学者の問題、ダイニングフィロソフィア問題(dining philosophers problem)
ダチョウアルゴリズム(ostrich algorithm)
SPINモデルチェッカ
形式手法によりシステムがデッドロックに陥らないことを検証できるモデル検査ツール
デッドロック - Wikipedia
Deadlock - Wikipedia