デッドロックとは
複数の処理が互いに相手の持つ資源を待ち続け、どれも先へ進めなくなる状態。
解説
たとえば処理Aが資源Xを確保して資源Yを待ち、処理Bが資源Yを確保して資源Xを待つと、どちらも永久に進めません。デッドロックは次の4条件がそろったときに起こります。①相互排除(資源を同時に1つの処理しか使えない)、②保持と待機(資源を持ったまま別の資源を待つ)、③非横取り(他の処理が持つ資源を強制的に奪えない)、④循環待ち(待ちの関係が輪になっている)。1つでも成り立たないようにすれば防げ、資源の確保順序をそろえるのは循環待ちを防ぐ代表的な方法です。
試験での出方
デッドロックが起こる条件や、防止策の説明を選ぶ問題が出ます。データベースのロックでも同様の現象が起こるため、DB分野でも問われます。
あわせて読みたい用語
この用語が解説に出てくる問題
- 令和元年度 秋期 問292相ロッキングプロトコルに従ってロックを獲得するトランザクション A,B を図のように同時実行した場合に,デッドロック…
- 平成25年度 秋期 問31“商品”表に対して,更新SQL文を実行するトランザクションが,デッドロックの発生によって異常終了した。異常終了後の“商…
- 平成24年度 春期 問33DBMSの排他制御に関する記述のうち,適切なものはどれか。
- 平成23年度 秋期 問34DBMSにおけるデッドロックの説明として,適切なものはどれか。
- 令和元年度 秋期 問46データベースのトランザクションに関する記述のうち,適切なものはどれか。
この用語がよく出る分野:ソフトウェアの要点と過去問一覧