トランザクション処理(全62問中17問目)

トランザクションA~Gの待ちグラフにおいて,永久待ちの状態になっているトランザクション全てを列挙したものはどれか。ここで,待ちグラフのX→Yは,トランザクションXはトランザクションYがロックしている資源のアンロックを待っていることを表す。
29.gif

出典:平成29年秋期 問29

  • A,B,C,D
  • B,C,D
  • B,C,D,F
  • C,D,E,F,G
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
待ちグラフは、実行中のトランザクションを各ノード、データのアンロック待ちの様子を矢印(有向辺)で表現したグラフで、デッドロックの検出に使用されます。

まずA~Gのトランザクションのうち、資源のアンロック待ちにより処理が停止しているトランザクションに印を付けると次のようになります。
29_1.gif
この時点で処理が進行しているのはAとGのみです。この後、トランザクションの進行に伴いAの資源がアンロックされますが、Bの資源アンロックを待っているCは再開できません。一方、Gの資源がアンロックされるとEは処理を再開できます。
29_2.gif
そしてEが資源をアンロックするとDまたはFがその資源を得ます。しかしDはCの、FはDの資源アンロックを待っているため、どちらのトランザクションも再開できません。ここでデッドロックとなります。
29_3.gif
したがって永久待ちの状態になっているトランザクションの組は「B,C,D,F」です。

Pagetop