平成28年 春期 応用情報技術者 午前 問28

トランザクションA(処理A1→処理A2の順に実行する)とトランザクションB(処理B1→処理B2の順に実行する)が、データベースの資源SとTに対し、次のように 処理A1→処理B1→処理A2→処理B2の順で専有ロックを要求する場合、デッドロックが発生する資源の組合せはどれか。
なお、ロックは処理開始時にかけ、トランザクション終了時に解除する。

A1 B1 A2 B2
S S T T
S T T S
T S T S
T T S S


答え イ


解説
デッドロックが発生するのは2つのトランザクションで2つの資源を占有ロックするとき、異なる順番で占有ロックを行うと発生するので

A1 B1 A2 B2
S T T S
になります。
処理A1で資源Sを占有ロック、処理B1で資源Tを占有ロックし、処理A2で資源Tを占有ロックしたいが資源TはトランザクションBが占有ロックしているので解放待ち、処理B2で資源Sを占有ロックしたいが資源SはトランザクションAが占有ロックしているので解放待ちでデッドロックになります。


キーワード
・ロック
・デッドロック

キーワードの解説

戻る 一覧へ 次へ