平成23年度 秋期 応用情報技術者試験 午前 問20
テクノロジ/ソフトウェア三つの資源 X〜Z を占有して処理を行う四つのプロセス A〜D がある。各プロセスは処理の進行に伴い,次に示す順序で資源を占有し,実行終了時に三つの資源を一括して解放する。プロセス A とデッドロックを起こす可能性のあるプロセスはどれか。 プロセスA:資源X→資源Y→資源Zの順に占有 プロセスB:資源X→資源Y→資源Zの順に占有 プロセスC:資源Z→資源X→資源Yの順に占有 プロセスD:資源Z→資源Y→資源Xの順に占有 (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成23年度 秋期 応用情報技術者試験 午前 問20
- アB,C,D
- イC,D
- ウCだけ
- エDだけ
正解:イ
解説
デッドロックは資源の獲得順序が循環(逆転)する場合に起こり得ます。Aは資源をX→Y→Zの順で獲得しますが,CはZ→X→Y,DはZ→Y→Xの順で獲得しており,いずれもAとは獲得順序が一部逆転しているため循環待ちが起こり得ます。Bの獲得順序はAと同じ(X→Y→Z)なので循環待ちは起きません。
選択肢ごとの解説
- ア誤り。Bは資源の獲得順序がAと同じ(X→Y→Z)であるため,Aとの間でデッドロックは発生しません。
- イ正しい。CとDはいずれもAとは獲得順序の一部が逆転しており,循環待ちが起こり得ます。
- ウ誤り。Dも資源の獲得順序がAと完全に逆(Z→Y→X)であり,Aとデッドロックを起こす可能性があります。
- エ誤り。Cも資源の獲得順序がAと一部逆転しており,Aとデッドロックを起こす可能性があります。