デッドロックとは?
デッドロックとは、複数の処理が互いに相手の保持する資源の解放を待ち、どれも進めなくなる状態。相互排除・保持と待機・横取り不可・循環待ちの四条件がそろうと発生する。データベース管理システムは待ちグラフの循環を検知し、一方を強制終了して解消するのが一般的である。
情報処理安全確保支援士試験の過去問では1回出題されています。
でっどろっく
デッドロックの意味
複数の処理が互いに相手の保持する資源の解放を待ち、どれも進めなくなる状態。相互排除・保持と待機・横取り不可・循環待ちの四条件がそろうと発生する。データベース管理システムは待ちグラフの循環を検知し、一方を強制終了して解消するのが一般的である。
デッドロックの具体例
処理Aが表Xを押さえて表Yを待ち、処理Bが表Yを押さえて表Xを待つと循環が完成する。アクセスする表の順序を全アプリケーションで統一するのが最も確実な予防策で、加えてタイムアウトを設定し、犠牲になった側は自動で再試行するよう設計する。
デッドロックは試験でどう引っ掛けられる?
ライブロックや単なる待ち行列の混雑と混同されやすい。デッドロックは待ちが循環している点が本質で、時間が経てば解ける性質のものではない。検知して片方を犠牲にする以外に自然解消はしない。
デッドロックと関連する用語
デッドロックが出た過去問
複数のバッチ処理を並行して動かすとき,デッドロックの発生をできるだけ回避したい。バッチ処理の設計ガイドラインのうち,適切なものはどれか。
正解:複数レコードを更新するときにロックを掛ける順番を決めておき,全てのバッチ処理がこれに従って処理するように設計する。
要点:ロックの取得順序を統一すればデッドロックを避けられる
デッドロックは、複数の処理が資源を互いに異なる順序で確保し、相手が持つ資源を待ち合うことで発生する。したがって、ロックを掛ける順序をあらかじめ決めて全処理でそろえれば、循環した待ち関係が生じなくなり発生を回避できる。
出典:令和3年度 春期 情報処理安全確保支援士試験 am2 問21(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。