デッドロックとは?
デッドロックとは、複数の処理が互いに相手のロック解除を待ち続け、どちらも先に進めなくなってしまう状態。排他制御の副作用として発生しうる。
ITパスポートの過去問では2回出題されています(2012年度〜2015年度)。
でっどろっく
デッドロックの意味
複数の処理が互いに相手のロック解除を待ち続け、どちらも先に進めなくなってしまう状態。排他制御の副作用として発生しうる。
デッドロックの具体例
処理Aがデータ1をロックしてデータ2の解放を待ち、処理Bがデータ2をロックしてデータ1の解放を待っている場合、互いに永遠に待ち続けてしまう。
デッドロックは試験でどう引っ掛けられる?
処理が単に遅い状態や無限ループとは別物で、互いに相手のロック解除を待ち合ったまま動けなくなる状態。対策はロックをかける順序を全処理で統一すること。ロックを増やす・強くすることは解決にならない。
デッドロックと関連する用語
デッドロックが出た過去問
デッドロックの説明として、適切なものはどれか。
正解:複数のプロセスが共通の資源を排他的に利用する場合に、お互いに相手のプロセスが占有している資源が解放されるのを待っている状態
要点:デッドロックは資源を握ったまま互いの解放を待ち合い停止する状態
デッドロックは、複数のプロセスがそれぞれ資源を排他的に確保したまま、相手が持つ資源の解放を待ち合ってしまい、どちらも先へ進めなくなる状態である。資源の確保順序をあらかじめ統一するなどの方法で回避する。
出典:平成24年度 秋期 ITパスポート試験 問67(IPA)DBMSにおいて、データへの同時アクセスによる矛盾の発生を防止し、データの一貫性を保つための機能はどれか。
正解:排他制御
要点:排他制御は同時更新による矛盾を防ぐ仕組み
排他制御は、あるデータを更新している間ほかの処理からの更新を待たせることで、同時アクセスによる矛盾(後から書いた内容が前の更新を消してしまう等)を防ぎ、一貫性を保つ機能である。ロックを掛け合って互いに待ち続ける状態がデッドロックで、これは排他制御に伴って起こり得る不具合であり、機能そのものではない。
出典:平成27年度 春期 ITパスポート試験 問77(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。