でっどろっく
デッドロック
複数の処理が互いに相手のリソースを待ち続け、システム全体が停止する状態です。排他制御された資源の競合が原因で起こります。
詳しい説明
1. 定義
デッドロックとは、複数の処理が互いに相手のリソース(資源)を待ち続け、システムが永久に停止してしまう状態のことです。
2. 仕組み
排他制御されたリソースを取り合う際に発生します。処理Aがリソース1を確保してリソース2を待ち、処理Bがリソース2を確保してリソース1を待つといった状況で、どちらも進めなくなります。OSやDBの設計において回避すべき重大な問題です。
3. 試験ごとの視点
システムの信頼性や同時実行制御の分野で頻出です。発生する4つの条件(相互排除、保持待機、非占有、循環待機)を理解し、それらをいかに回避・検知・解消するかという対策が問われます。
試験で問われること
ITパスポート試験
- 処理が互いに待ち続けて停止する状態であることを理解する
- システムの障害の一つとして認識する
- 再起動による解消など基本的な対応を知る
基本情報技術者試験
- デッドロック発生の4条件を正確に暗記する
- 回避手法(リソースの割り当て順序の固定など)を説明できる
- タイムアウトや検知アルゴリズムによる解決策を把握する