平成26年度秋期 応用情報技術者試験 午前 問16
三つの資源 X〜Z を占有して処理を行う四つのプロセス A〜D がある。各プロセスは処理の進行に伴い,表中の数値の順に資源を占有し,実行終了時に三つの資源を一括して解放する。プロセス A とデッドロックを起こす可能性があるプロセスはどれか。

- ア B,C,D
- イ C,D
- ウ Cだけ
- エ Dだけ
解答・解説を見る
正解:イ
AI解説
デッドロックは、複数のプロセスが互いに相手の占有する資源の解放を待ち合って停止する状態で、資源の確保順序が互いに異なる場合に発生し得る。表の確保順序を比較すると、プロセスBはAと同じ順序で資源X〜Zを確保するためAとの間で循環待ちは生じない。一方CとDはAと確保順序が逆転する部分があるため、Aとデッドロックを起こす可能性がある。 ア: Bを含めているが、Aと同一順序で資源を確保するBとは互いに待ち合う循環が構成されず、デッドロックにはならない。 イ: 正解。確保順序がAと交差(逆転)するCとDだけがデッドロックの可能性をもつ。 ウ: Dも確保順序がAと逆転する箇所があるため、Cだけとするのは誤りである。 エ: Cも同様に可能性があるため、Dだけとするのは誤りである。 💡 「全プロセスが同じ順序で資源を確保すればデッドロックは起きない」が判定の決め手であり、防止策そのものでもある。順序が逆転する組合せだけを疑えばよい。
出典:平成26年度 秋期 応用情報技術者試験 午前 問16 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。