応用情報技術者試験 応用情報技術者試験 令和2年度 午前17: 三つの資源 X〜Z を占有して処理を行う四つのプロセス A〜D がある。各プロセスは処理の進行に伴い,表中の数値の順に資源を占有し,実行終了時に三つの資源を一括

応用情報技術者試験 令和2年度 午前
Q 1717 / 80
三つの資源 X〜Z を占有して処理を行う四つのプロセス A〜D がある。各プロセスは処理の進行に伴い,表中の数値の順に資源を占有し,実行終了時に三つの資源を一括して解放する。プロセス A と同時にもう一つプロセスを動かした場合に,デッドロックを起こす可能性があるプロセスはどれか。
プロセス資源の占有順序
資源 X資源 Y資源 Z
A123
B123
C231
D321
この問の正解率:76.31%(477件)

問題本文

三つの資源 X〜Z を占有して処理を行う四つのプロセス A〜D がある。各プロセスは処理の進行に伴い,表中の数値の順に資源を占有し,実行終了時に三つの資源を一括して解放する。プロセス A と同時にもう一つプロセスを動かした場合に,デッドロックを起こす可能性があるプロセスはどれか。

選択肢

  • .B,C,D
  • .C,D
  • .C だけ
  • .D だけ

正解

. C,D

解説

デッドロックは、複数プロセスが資源を取得する順序が異なるために互いに相手の保持資源を待ち合うことで発生する。資源取得順序を全プロセスで統一すれば待つだけで済み、デッドロックは起こらない。プロセスAの取得順序は X→Y→Z。Bも同じ X→Y→Z なのでAと順序が一致しデッドロックは起きないが、CはX以外から始まり順序が異なり、DはZから始まって順序が逆になるため、AとC、AとDの組ではそれぞれ取得順序が食い違い待ち合いが生じうる。したがってデッドロックの可能性があるのはCとDで、イが正解。

選択肢ごとの解説

  • .BはAと全く同じ X→Y→Z の順序で取得するため待ち合いが起きずデッドロックしない。Bを含めるこの選択肢は誤り。
  • .C(Y→Z→X相当の順)とD(Z→Y→X)はAのX→Y→Zと取得順序が異なり相互に待ち合う可能性があるため、デッドロックを起こし得る組み合わせとして正しい。
  • .Cだけでなく、Z→Y→Xの順で取得するDもAと逆順で待ち合いが生じうるため、Cだけとするのは不十分で誤り。
  • .Dだけでなく、取得順序がAと異なるCもデッドロックを起こし得るため、Dだけとするのは不十分で誤り。

応用情報技術者試験 令和2年度 午前過去問一覧へ戻る・問17