システムアーキテクト暗記無料で始める

デッドロックとは?デッドロック

デッドロックとは、複数の処理が互いの持つ資源の解放を待ち合い、外から手を入れない限り永久に動かなくなる状態。相互排除・保持と待ち・横取り不可・循環待ちの4条件がそろったときにだけ成立し、どれか1つを崩せば起こらない。多くのDBMSは検出後に片方を強制的に巻き戻して解消する。

最終更新:2026-10-06

試験情報

システムアーキテクト試験の過去問では1回出題され、ほかに1問の解説で触れられています(2019年度〜2024年度)。

システムアーキテクト試験の頻出用語/午前II

別名:相互ロック待ち、死の抱擁、デッドロック(OSレベル)、OSレベル

この語が出る過去問を解く →

背景

排他制御は同時実行の正しさを守るために資源を独占させる仕組みで、独占する以上は待ちが生まれる。待ちの向きがばらばらだと輪ができ、正しさを守った結果としてシステムが止まる。設計側はどの条件を崩すかを選ぶことになり、確保の順序を全体で統一して循環待ちを潰すのが、並行度への影響がもっとも小さい。

具体例

口座間振替で、A→Bの処理が口座A、B→Aの処理が口座Bを先にロックすると輪ができる。口座番号の小さい順にロックすると決めておけば、どちらも同じ向きに確保するため輪が生じない。Oracle Databaseはこの状態を検出するとORA-00060で片方を中断する。

試験での引っ掛け

待ちグラフの閉路で検出する点と、閉路の外から閉路内のトランザクションを待っている処理も巻き添えで止まる点。またDBMSが自動で片方を中断しても、中断された側を再実行する作りをアプリに入れていなければ、業務としては失敗したままになる。

関連用語

出た過去問

問題文で直接問われたものと、解説の中で触れられたものが含まれます。

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では1回出題(2019年度〜2024年度)
  • 分野:午前II
  • 待ちグラフの閉路で検出する点と、閉路の外から閉路内のトランザクションを待っている処理も巻き添えで止まる点。