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

- ア B,C,D
- イ C,D
- ウ Cだけ
- エ Dだけ
解答・解説を見る
正解:イ
AI解説
デッドロックは、複数のプロセスが互いに相手の占有する資源の解放を待ち合って停止する現象で、資源の獲得順序が互いに逆になっている場合に発生し得る。表の獲得順序を比べると、AとBは同じ順序で資源を確保するためデッドロックは起きないが、CとDはAと逆順に確保する箇所があるため、Aとデッドロックを起こす可能性がある。したがってイが正解である。 ア: BはAと資源の獲得順序が同じであり、先行プロセスの解放を待つだけでデッドロックにはならないため、Bを含むこの肢は誤りである。 イ: 正しい。Aと獲得順序が逆転しているC,Dが、互いに資源を保持したまま相手の資源を待ち合う可能性をもつ。 ウ: DもAと逆順の獲得があるため、Cだけでは不足である。 エ: CもAと逆順の獲得があるため、Dだけでは不足である。 💡 「全プロセスが同じ順序で資源を獲得すればデッドロックは起きない」が大原則。表問題では各プロセスの獲得順を並べ、正解は基準プロセスと順序が逆転している相手を選ぶ。
出典:平成23年度 秋期 応用情報技術者試験 午前 問20 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。