デッドロックとは?
デッドロックとは、複数の処理が互いに相手の使っている資源の解放を待ち合い、どちらも先へ進めなくなる状態。排他制御を行う以上は起こり得る現象で、検知して片方の処理を取り消すことで解消する点が問われる。利用者から見ると、画面が固まったように見える。
基本情報技術者試験の過去問では1回出題されています。
でっどろっく
デッドロックの意味
複数の処理が互いに相手の使っている資源の解放を待ち合い、どちらも先へ進めなくなる状態。排他制御を行う以上は起こり得る現象で、検知して片方の処理を取り消すことで解消する点が問われる。利用者から見ると、画面が固まったように見える。
デッドロックの具体例
在庫システムで、担当者Aが商品の表を押さえたまま受注の表を、担当者Bが受注の表を押さえたまま商品の表を更新しようとして、両方の画面が固まった。片方の処理が自動で取り消され、やり直しになった。以後、運用手順書に再入力の方法を明記した。
デッドロックは試験でどう引っ掛けられる?
排他制御をやめれば起きないが、それではデータの整合性が崩れる。障害ではなく設計上起こり得る現象なので、業務側は「取り消されたら入力し直す」という手順を知っておく必要がある。
デッドロックと関連する用語
デッドロックが出た過去問
2相ロッキングプロトコルに従ってロックを獲得するトランザクションA、Bを図のように同時実行した場合に、デッドロックが発生しないデータ処理順序はどれか。ここで、r…
正解:①update X ②read W ③update Y ④update Z
要点:デッドロック回避の基本は、資源のロック順序を全体でそろえること
2相ロッキングでは獲得したロックをトランザクション終了まで解放しないため、2つのトランザクションが同じ2件のデータを互いに逆の順序でロックしようとするとデッドロックになる。トランザクションAはW、X、Y、Zの順に処理するので、Bも同じ相対順序でロックを取れば循環待ちは起きない。Wは共有ロックなので双方が同時に保持でき、待ちの原因にはならない点も判断材料になる。
出典:令和1年度 秋期 基本情報技術者試験 午前 問29(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。