トランザクションA〜Dに関する待ちグラフのうち、デッドロックが発生しているものはどれか。
ここで、待ちグラフの矢印は、X→Yのとき、トランザクションXはトランザクションYがロックしている資源のアンロックを待っていることを表す。
ア | |
イ | |
ウ | |
エ |
答え イ
【解説】
デッドロックは複数のトランザクションで、互いに相手が占有している資源をロックしようとして、処理が停止することなので、図では資源のアンロック待ちが循環している状態がデッドロックになるので
(イ)になります。
この状態は、トランザクションAがトランザクションCのロックしている資源のアンロック待ちで、トランザクションCがトランザクションBのロックしている資源のアンロック待ちで、トランザクションBがトランザクションAのロックしている資源のアンロック待ちで、デッドロックになっています。
【キーワード】
・デッドロック