平成29年度秋期 応用情報技術者試験 午前 問29
トランザクション A〜G の待ちグラフにおいて,永久待ちの状態になっているトランザクション全てを列挙したものはどれか。ここで,待ちグラフの X→Y は,トランザクション X はトランザクション Y がロックしている資源のアンロックを待っていることを表す。 〔トランザクション A〜G の待ちグラフ〕

- ア A, B, C, D
- イ B, C, D
- ウ B, C, D, F
- エ C, D, E, F, G
解答・解説を見る
正解:ウ
AI解説
正解はウ。待ちグラフで永久待ち(デッドロック)になるのは,(1)矢印がループ(閉路)を構成しているトランザクション群と,(2)そのループ内のトランザクションのアンロックを直接・間接に待っているトランザクションである。本問ではB→C→D→Bの閉路がデッドロックを形成し,さらにFが閉路内のトランザクションを待っているため,B,C,D,Fが永久待ちとなる。 ア: Aは他から待たれている,または待ち先がいずれアンロックされる位置にあり,閉路に含まれないため永久待ちではない。A自身は資源を解放できる。 イ: 閉路を構成するB,C,Dだけでは不十分。閉路内のトランザクションを待つFも永久にアンロックされず,永久待ちに含める必要がある。 ウ: 正しい。閉路B→C→D→Bのデッドロックに加え,その閉路メンバを待つFも資源が解放されないため永久待ちとなる。 エ: EやGは閉路にも閉路への待ち経路にも含まれず,待ち先の処理が完了すれば実行できるため永久待ちではない。 💡 待ちグラフ問題の手順は「①閉路を探す→②閉路のメンバを待っている外部のトランザクションもたどって追加」。閉路だけ答えて派生の待ちを見落とすのが典型ミス。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。