データベーススペシャリスト令和6年秋期 午前Ⅱ 問13

問13

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

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

分類

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

正解

解説

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

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

Pagetop