IT用語帳
APデータベース · トランザクション処理

デッドロック

Deadlock

でっどろっく

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

共有:

Related

他の資格での定義

IPデッドロック

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

FEデッドロック

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

SAデッドロック

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

DBデッドロック

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

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

関連キーワードの用語

AP排他制御

複数のプロセスやトランザクションが共有資源に同時アクセスする際に、データの整合性を保つための制御機構。セマフォ、ミューテックスなどのOS同期機構や、ロック方式(共有ロック・専有ロック)、MVCC等のデータベース制御手法がある。デッドロックの防止も重要な課題。

APトランザクション

データベースに対する一連の処理をまとめた論理的な作業単位。「全て実行」か「全て取消」のいずれかで完了し、途中で中断された状態を残さない。ACID特性(原子性、一貫性、独立性、永続性)を満たす必要がある。

APACID特性

トランザクション処理に求められる4つの特性。Atomicity(原子性:全て実行か全て取消)、Consistency(一貫性:整合性の維持)、Isolation(独立性:他のトランザクションの影響を受けない)、Durability(永続性:完了した結果は失われない)。

AP隔離性水準(トランザクション分離レベル)

同時に実行されるトランザクションどうしを、どこまで隔離するかの段階。SQLの標準はREAD UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLEの4つを定め、READ COMMITTEDではダーティリードが、REPEATABLE READではさらにノンリピータブルリードが、SERIALIZABLEではさらにファントムリードが起きなくなる。水準を上げるほど整合性は高まるが、待ちが増えて同時実行性は下がる。

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

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

APダーティリード

他のトランザクションが更新してまだコミットしていないデータを読み取ってしまう現象。更新した側が後でロールバックすると、存在しなかった値に基づいて処理したことになる。隔離性水準をREAD COMMITTED以上にすれば防げる。