デッドロック(OSレベル)とは?でっどろっく
デッドロック(OSレベル)とは、複数のプロセスが互いに相手の確保している資源の解放を待ち続け、どれも先へ進めなくなった状態。相互排除、保持と待機、横取り不可(非割込み)、循環待ちの4条件がすべて同時に成り立つときに発生する。裏返せば、どれか1つを崩す設計にすれば発生を防げる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
複数のプロセスが同じ資源を壊さずに使うには排他制御が要り、排他制御をする以上、待ちは避けられない。そこへ複数の資源を順に確保する処理が同時に走ると、確保する順番次第で待ちの関係が環になる。対処は、設計時に確保順序を決めて環を作らせない予防、割当ての前に安全かを判定する回避(銀行家アルゴリズム)、起きてから検出して片方を巻き戻す検出と回復の3系統で、どれを採るかを選ばせる形で問われる。
具体例
同じ2行を逆の順番で更新する処理が同時に走ると、データベースの行ロックが環になって双方が止まる。多くのDBMSはこれを検出し、片方のトランザクションを自動でロールバックしてエラーを返す仕組みを持っており、アプリケーション側は更新する行の順序を統一するか、エラーを受けて再試行する作りにして避ける。
試験での引っ掛け
4条件は「すべて揃ったとき」に発生するので、対策は1つ崩せば足りる(資源の要求順序を統一すれば循環待ちが崩れる)。「4条件のいずれか1つで発生する」は誤りである。また、優先度の低いプロセスにいつまでも順番が回らないスタベーションは、待ち合う相手がいなくても起こる別の現象で、混同しやすい。
関連用語
出た過去問
出典:平成28年度 春期 応用情報技術者試験 午前 問28(IPA)
トランザクションA(処理A1→処理A2の順に実行する)とトランザクションB(処理B1→処理B2の順に実行する)が,データベースの資源SとTに対し,次のように処理…
正解:A1=S, B1=T, A2=T, B2=S
要点:互いに相手の保持資源を要求し合うとデッドロックになる
デッドロックは、互いが相手の保持する資源を待ち合うときに発生する。AがSを、BがTを先に確保し、次にAがT、BがSを要求する組合せでは、両者が相手の解放を待ち続けて処理が進まなくなる。
出典:平成29年度 春期 応用情報技術者試験 午前 問29(IPA)
トランザクションAとBが,共通の資源であるテーブルaとbを表に示すように更新するとき,デッドロックとなるのはどの時点か。ここで,表中の①~⑧は処理の実行順序を示…
正解:⑥
要点:デッドロックは互いに相手のロック解放を待ち合った時点で成立する
③でAがテーブルaを、④でBがテーブルbをロックする。⑤でAがテーブルbを更新しようとするとBのロックを待たされ、続く⑥でBがテーブルaを更新しようとするとAのロックを待つことになる。互いに相手の解放を待ち合う状態が成立するのは⑥の時点である。
出典:平成31年度 春期 応用情報技術者試験 午前 問18(IPA)
二つのタスクが共用する二つの資源を排他的に使用するとき、デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。
正解:資源獲得の順序を両方のタスクで同じにする。
要点:資源の獲得順序を全タスクで統一すればデッドロックは防げる
デッドロックは、複数のタスクが資源を互いに違う順序で確保し、相手が持つ資源を待ち合う状態になることで生じる。すべてのタスクが資源を同じ順序で獲得するよう決めておけば、循環した待ち関係が作れなくなるためデッドロックは発生しない。
出典:令和2年度 10月試験 応用情報技術者試験 午前 問17(IPA)
三つの資源X〜Zを占有して処理を行う四つのプロセスA〜Dがある。各プロセスは処理の進行に伴い、表中の数値の順に資源を占有し、実行終了時に三つの資源を一括して解放…
正解:C, D
要点:資源の占有順序が逆になる組合せでデッドロックが起こる
デッドロックは、2つのプロセスが資源を互いに逆順で要求したときに発生し得る。Aの占有順はX→Y→Zで、Bも同じ順なので待ち合わせが循環せず安全である。CはZ→X→Y、DはZ→Y→XとZを先に取るため、AがX(とY)を持ちCまたはDがZを持った状態で相互に待つ可能性がある。
出典:令和4年度 秋期 応用情報技術者試験 午前 問16(IPA)
二つのタスクが共用する二つの資源を排他的に使用するとき、デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。
正解:資源獲得の順序を両方のタスクで同じにする。
要点:資源の獲得順序を統一すればデッドロックを防げる
デッドロックは、複数のタスクが資源を互いに保持したまま相手の資源を待つ循環待ちで起きます。全タスクで資源を獲得する順序をあらかじめ一本化しておけば循環が生じないため、デッドロックを予防できます。
出典・参考
公式シラバスの3 技術要素 > 1. データベース方式 > (2) データベース管理システムに掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。