令和6年度 春期 応用情報技術者試験 午前 問17
テクノロジ/ソフトウェア三つの資源 X〜Z を占有して処理を行う四つのプロセス A〜D がある。各プロセスは処理の進行に伴い,表中の数値の順に資源を占有し,実行終了時に三つの資源を一括して解放する。プロセス A と同時にもう一つプロセスを動かした場合に,デッドロックを起こす可能性があるプロセスはどれか。 〔資源の占有順序〕 プロセス A: 資源X=1,資源Y=2,資源Z=3 プロセス B: 資源X=1,資源Y=2,資源Z=3 プロセス C: 資源X=2,資源Y=3,資源Z=1 プロセス D: 資源X=3,資源Y=2,資源Z=1 (注:本サイトでは原問題の表を文字表記に変換しています)
出典:令和6年度 春期 応用情報技術者試験 午前 問17
- アB,C,D
- イC,D
- ウC だけ
- エD だけ
正解:イ
解説
プロセスAは資源をX→Y→Zの順で占有します。デッドロックの可能性があるのは,Aと逆順(またはAの占有順と資源の取り合いが生じる順)で資源を確保しようとするプロセスです。プロセスCはX→Y→Zとは異なる順(Z=1を最初に占有しようとする点でAと資源の取り合いが生じ得る組合せ)で確保しようとし,プロセスDも資源Z=1を先に占有しようとするため,Aと資源待ちが循環しデッドロックを起こす可能性があります。一方,プロセスBはAと全く同じ順序(X→Y→Z)で資源を占有するため,互いに資源を先取りする形にならず,デッドロックは起こりません。
選択肢ごとの解説
- ア誤り。Bを含めていますが,BはAと同じ占有順序(X→Y→Z)であるため,資源待ちが循環せずデッドロックは発生しません。
- イ正しい。CとDはAと異なる順序で資源Zを先に確保しようとするため,Aとの間で資源待ちの循環が生じ,デッドロックを起こす可能性があります。
- ウ誤り。Dも同様にAと異なる順序で資源を占有しようとするため,Cだけでなくデッドロックの可能性があります。
- エ誤り。Cも同様にAと異なる順序で資源を占有しようとするため,Dだけでなくデッドロックの可能性があります。