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

- ア B,C,D
- イ C,D
- ウ Cだけ
- エ Dだけ
解答・解説を見る
正解:イ
AI解説
デッドロックは、複数のプロセスが互いに相手が保持する資源の解放を待ち続け、処理が進まなくなる状態をいう。各プロセスの資源占有順序を確認すると、プロセスAと同時実行時に資源の獲得順序が循環待ちとなる組合せはCとDである。 ア: B,C,Dのすべてがデッドロックの可能性があるとする組合せは、資源占有順序と照合すると過大であり、Bは循環待ちを生じないため誤りである。 イ: 正しい。表中の資源占有順序を確認すると、プロセスAと同時実行時に資源の獲得順序が循環しCとDの組合せでデッドロックが発生し得る。 ウ: Cだけとする組合せは、Dも同様に循環待ちを生じ得るため、可能性のあるプロセスを網羅していない誤答である。 エ: Dだけとする組合せも同様に、Cも循環待ちを生じ得るため、可能性のあるプロセスを網羅していない誤答である。 💡 デッドロックの判定は、各プロセスが資源を「獲得する順序」を書き出し、互いに逆順で資源を要求する組合せがないかを確認するのが基本手順である。
出典:令和2年度 秋期 応用情報技術者試験 午前 問17 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。