令和6年度 秋期 データベーススペシャリスト試験 午前II 問13
【問題13】
トランザクションA~Gの待ちグラフにおいて、永久待ちの状態になっているトランザクション全てを列挙したものはどれか。ここで、待ちグラフのX→Yは、トランザクションXはトランザクションYがロックしている資源のアンロックを待っていることを表す。
【解説】
待ちグラフ解析:
待ちグラフでは、トランザクションをノード、待ち関係を矢印(有向辺)で表します。デッドロックは、このグラフ内にサイクル(循環)が存在する場合に発生します。
問題の待ちグラフを解析すると、以下のサイクルが存在します:
B → C → D → B
このサイクルにより、トランザクションB、C、Dは永久待ちの状態になります。
また、トランザクションFはトランザクションDのアンロックを待っていますが、Dは上記のサイクルに含まれているため、Fも永久待ちの状態になります。
したがって、永久待ちの状態になっているトランザクションは B, C, D, F です。
ア: A, B, C, D
誤り。Aは待ちグラフにおいて他のトランザクションを待っていないため、永久待ちには含まれません。
イ: B, C, D
誤り。Fも永久待ちの状態にあるため、不完全です。
ウ: B, C, D, F
正しい。これらのトランザクションはすべて永久待ちの状態にあります。
エ: C, D, E, F, G
誤り。EとGは待ちグラフにおいて他のトランザクションを待っていないため、永久待ちには含まれません。
出典:令和6年度 秋期 データベーススペシャリスト試験 午前II 問13