テクノロジ
デッドロックとは
英語名:Deadlock
ひとことで言うと:複数のトランザクションが互いに相手の保持する資源の解放を待ち続け、処理が進まなくなる状態。
意味をわかりやすく解説
例えばT1が資源AをロックしてBを待ち、T2がBをロックしてAを待つと循環待ちになります。待つだけでは解消しないため、DBMSは検出して一方をロールバックするなどして解除します。
予防策として、複数資源を常に同じ順序で取得する、ロック保持時間を短くするなどがあります。単なる処理待ちと循環待ちを区別します。
具体例
T1が顧客行をロック後に注文行を待ち、T2が注文行をロック後に顧客行を待つと、互いに進めなくなる場合があります。
似た用語との違い
待ち状態
通常の待ちは相手が完了すれば進みます。デッドロックは待ち関係が循環し、外から解消しないと進みません。
基本情報技術者試験の試験ポイント
循環待ちの構造を図で追えることと、片方のトランザクションを取り消すことで解消できることを押さえます。
CHECK QUESTION
二つのトランザクションが互いに相手のロック解放を永久に待つ状態を何といいますか。
答えを見る
デッドロックです。
この説明は分かりやすかったですか?
基本情報技術者試験を勉強中ですか?
この用語を含む重要用語を、単語帳や4択テストで学習できます。