応用情報技術者平成29年秋期 午前問29

問29

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

〔トランザクションA~Gの待ちグラフ〕
29.png/image-size:256×83
  • A,B,C,D
  • B,C,D
  • B,C,D,F
  • C,D,E,F,G

分類

テクノロジ系 » データベース » トランザクション処理

正解

解説

待ちグラフは、実行中のトランザクションを各ノード、データのアンロック待ちの様子を矢印(有向辺)で表現したグラフで、デッドロックの検出に使用されます。

まずA~Gのトランザクションのうち、資源のアンロック待ちにより処理が停止しているトランザクションに印を付けると次のようになります。
29_1.png/image-size:289×94
この時点で処理が進行しているのはAとGのみです。この後、トランザクションの進行に伴いAの資源がアンロックされますが、Bの資源アンロックを待っているCは再開できません。一方、Gの資源がアンロックされるとEは処理を再開できます。
29_2.png/image-size:289×94
そしてEが資源をアンロックするとDまたはFがその資源を得ます。しかしDはCの、FはDの資源アンロックを待っているため、どちらのトランザクションも再開できません。ここでデッドロックとなります。
29_3.png/image-size:289×94
したがって永久待ちの状態になっているトランザクションの組は「B,C,D,F」です。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop