IT用語帳
DBデータベースシステムの運用・管理 · データベースシステムの管理

デッドロック

Deadlock

でっどろっく

2つ以上のトランザクションが互いに相手のロック解放を待ち合い、処理が永久に進まなくなる状態。待ちグラフによる検出や、タイムアウトによる検出を行い、一方のトランザクションをアボートして解消する。

共有:

Related

他の資格での定義

IPデッドロック

複数のトランザクションが互いに相手がロックしている資源の解放を待ち合い、どちらも処理を進められなくなる状態。検出した場合は一方のトランザクションを強制終了して解消する。

FEデッドロック

2つ以上のトランザクションが互いに相手がロックしているリソースの解放を待ち合い、処理が永久に進まなくなる状態。DBMSがデッドロックを検出した場合、一方のトランザクションを強制的にロールバックして解消する。

APデッドロック

2つ以上のトランザクションが互いに相手のロック解放を待ち続け、いずれも先に進めなくなる状態。検出時にはいずれかのトランザクションをロールバックして解消する。予防策として資源の獲得順序を統一する方法がある。

SAデッドロック

複数のプロセスやスレッドが互いに相手のリソース解放を待ち続け、すべての処理が停止する状態。相互排他、保持と待機、非横取り、循環待ちの4条件が同時に成立すると発生する。タイムアウトや資源の順序付けで回避する。

ESデッドロック

複数のタスクが互いに相手の保持する資源の解放を待ち合い、どのタスクも処理を進められなくなる状態。相互排他、保持と待ち、非プリエンプション、循環待ちの4条件が全て揃うと発生する。資源の獲得順序の統一などで予防する。

PD-Dデッドロック

複数のトランザクション(プロセス)が、互いに相手が確保している資源の解放を待ち続け、どれも処理を進められなくなる状態。DBMSは待ちグラフに閉路ができたことでこれを検出し、いずれかのトランザクションをロールバックして解消する。予防策には、資源を確保する順序をそろえる、Wait-Die方式やWound-Wait方式のように時刻印で待つか中止するかを決めるといった方法がある。

PD-Sデッドロック

複数のタスクが互いに相手の保持する資源の解放を待ち合い、どのタスクも処理を進められなくなる状態。相互排他、保持と待ち、非プリエンプション、循環待ちの4条件が全て揃うと発生する。資源の獲得順序の統一などで予防する。

A-1デッドロック

2つ以上のトランザクションやプロセスが、互いに相手が確保している資源の解放を待ち続け、どれも処理を先に進められなくなる状態。DBMSは待ちグラフなどで検出し、いずれかのトランザクションをロールバックして解消する。資源を確保する順序を統一することで発生を防げる。

Past Exams

過去問での出題

過去問で 61 回出題(データベーススペシャリスト試験 21・応用情報技術者試験 13・高度試験 午前Ⅰ 6・エンベデッドシステムスペシャリスト試験 5・基本情報技術者試験 4・ITパスポート試験 3・ITサービスマネージャ試験 3・情報処理安全確保支援士試験 3・情報セキュリティマネジメント試験 1・システムアーキテクト試験 1・システム監査技術者試験 1)。うち 2 回は用語そのものを問う問題です。

残り 51 件を表示

出典: 独立行政法人情報処理推進機構(IPA)の過去問題。問題文は IPA のサイトの PDF で確認できます。「用語を問う問題」は、この用語の説明や特徴そのものを問う問題です。「選択肢」は、問題文ではなく選択肢に出たものです。用語名で照合しているため、関係の薄い問題が含まれることがあります。

データベーススペシャリスト試験の過去問によく出る用語

Related

関連キーワードの用語

DBロック

トランザクションがデータにアクセスする前に、他のトランザクションのアクセスを制限するための仕組み。共有ロック(読取り用)と占有ロック(更新用)がある。

DB楽観的制御方式(楽観的ロック)

トランザクション実行中はロックを取得せず、コミット前に競合が発生していないか検証する方式。読取り→検証→書込みの3フェーズで処理する。競合が少ない環境で高いスループットを実現する。

DBタイムアウト

ロック待ちの最大許容時間。指定時間内にロックが取得できない場合、トランザクションをエラーとして中断する仕組み。デッドロックの間接的な検出手段としても機能する。待ちグラフによる検出より実装が簡単だが、正常な待ちも中断する可能性がある。

DB共有ロック

データの読取り時に取得するロック。同一データに対して複数のトランザクションが同時に共有ロックを取得でき、他の共有ロックとは共存するが、占有ロックとは排他的である。

DB専有ロック

データの更新(INSERT、UPDATE、DELETE)時に取得するロック。同一データに対して他のいかなるロック(共有・占有)とも排他的であり、ロックを取得したトランザクションのみがアクセスできる。

AP2相ロッキングプロトコル

トランザクションがロックを扱う期間を、ロックを獲得するだけの拡張相と、解放するだけの縮小相の2つに分ける規約。一度ロックを解放したら、そのトランザクションは新たなロックを獲得しない。すべてのトランザクションがこれに従えば直列化可能性が保証されるが、デッドロックは防げない。