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