ホーム > データベーススペシャリスト試験 > 2024年
データベーススペシャリスト試験 2024年 午前2 問13
トランザクションA~Gの待ちグラフにおいて, 永久待ちの状態になっているトランザクション全てを列挙したものはどれか。ここで, 待ちグラフのX→Yは, トランザクションXはトランザクションYがロックしている資源のアンロックを待っていることを表す。

ア:A, B, C, D
イ:B, C, D
ウ:B, C, D, F(正解)
エ:C, D, E, F, G
解説
永久待ち (デッドロック) になるトランザクションの求め方
1. 待ちグラフの矢印の意味
- X → Y : トランザクション X が,トランザクション Y が保持しているロックのアンロックを待っている。
- デッドロックは 矢印が閉じた輪(サイクル) を作るノード(トランザクション)全てで発生する。
2. グラフ内のサイクルを探す
図から読み取れる主な待ち関係(→ は待ちを表す):
A → C
B → D , D → B (B と D が互いに待つ)
C → D
D → F
F → C (D → F → C → D のサイクル)
- B ↔ D で 2 ノードのサイクル
- D → F → C → D で 3 ノードのサイクル
3. サイクルに含まれるトランザクション
- B, D(2 ノードサイクル)
- C, D, F(3 ノードサイクル)
重複を除くと B, C, D, F が永久に資源を待ち続ける。
よって,永久待ち状態にあるトランザクションは
B, C, D, F の 4 つ
選択肢
- ア A, B, C, D ✗ A はどのサイクルにも入らない
- イ B, C, D ✗ F が抜けている
- ウ B, C, D, F ✓
- エ C, D, E, F, G ✗ E と G はサイクルに含まれない
正解 : ウ