デッドロック

読み:デッドロック
外語:dead lock 英語
品詞:名詞

二つ以上のプロセスが互いに占有している資源にアクセスを試みてしまい、それぞれ相手側の要求が完了しないために資源の解放もできず永久に待ち状態になってしまうこと。英語の原義では「行き詰まり」。

目次

例えばファイルAとファイルBを排他的に用いるとする。

プロセス甲がファイルAをロックしてファイルBのロック解放を待つ、プロセス乙がファイルBをロックしてファイルAのロック解放を待つ、という状況になると、半永久的にそれ以上処理が進まなくなってしまう。これがデッドロックである。

身近な例では、CGIの掲示板プログラムがある。

二人が同時に書き込むとファイルが壊れてしまうので、書き込みは一人ずつ処理するよう、書き込むファイルにロックをかけることが多い。

しかしもしある人の書き込み処理でエラーが起き、そのプログラムがロックを解除せずに不正終了してしまうと、次の人が掲示板に書き込もうとしても前の書き込みが終了していないように見えるので、いつになっても書き込めずエラーになってしまう。これもデッドロックの一例である。実際にはこうならないようにプログラムを書かないといけないわけである。

用語の所属
並列処理
ロック処理
関連する用語
ロック (アドレス空間管理)
プロセス

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club