平成29年秋期試験問題 午前問29

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

〔トランザクションA~Gの待ちグラフ〕
29.png

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

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

Pagetop