IPA過去問ドリル

平成26年度 秋期 応用情報技術者試験 午前 問16

テクノロジ/ソフトウェア

三つの資源 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 (注:本サイトでは原問題の表を文字表記に変換しています)

出典:平成26年度 秋期 応用情報技術者試験 午前 問16

正解:イ

解説

プロセスAは資源をX→Y→Zの順に占有します。プロセスBもAと全く同じ順序(X→Y→Z)で占有するため,Aと資源の取り合いになってもどちらかが先に全資源を確保でき,デッドロックには至りません。プロセスCとDはXYZの占有順序がAと逆行する部分(Z→X→Y,Z→Y→Xに相当する構造)を含むため,互いに資源を先に一部確保した状態で待ち合ってしまい,デッドロックを起こす可能性があります。

選択肢ごとの解説

  • 誤り。Bは資源をAと全く同じ順序(X→Y→Z)で占有するため,Aとの間でデッドロックは発生しません。
  • 正しい。CとDは占有順序がAと交差するため,互いに資源を待ち合ってデッドロックを起こす可能性があります。
  • 誤り。デッドロックの可能性があるのはCだけでなくDも該当します。
  • 誤り。デッドロックの可能性があるのはDだけでなくCも該当します。
応用情報技術者の過去問を演習モードで解く