本文へ移動

でっどろっく

デッドロック

複数の処理が互いに相手のリソースを待ち続け、システム全体が停止する状態です。排他制御された資源の競合が原因で起こります。

詳しい説明

1. 定義
デッドロックとは、複数の処理が互いに相手のリソース(資源)を待ち続け、システムが永久に停止してしまう状態のことです。

2. 仕組み
排他制御されたリソースを取り合う際に発生します。処理Aがリソース1を確保してリソース2を待ち、処理Bがリソース2を確保してリソース1を待つといった状況で、どちらも進めなくなります。OSやDBの設計において回避すべき重大な問題です。

3. 試験ごとの視点
システムの信頼性や同時実行制御の分野で頻出です。発生する4つの条件(相互排除、保持待機、非占有、循環待機)を理解し、それらをいかに回避・検知・解消するかという対策が問われます。

試験で問われること

ITパスポート試験

  • 処理が互いに待ち続けて停止する状態であることを理解する
  • システムの障害の一つとして認識する
  • 再起動による解消など基本的な対応を知る

基本情報技術者試験

  • デッドロック発生の4条件を正確に暗記する
  • 回避手法(リソースの割り当て順序の固定など)を説明できる
  • タイムアウトや検知アルゴリズムによる解決策を把握する