平成23年度秋期 問20 / 80

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

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

プロセス 資源X 資源Y 資源Z
A 1 2 3
B 1 2 3
C 2 3 1
D 3 2 1

(表中の数値は資源の占有順序)

キーボード:1〜4 で解答 → 次の問題 ← 前の問題

正解と解説を見る

正解:イ

デッドロックは,二つのプロセスが互いに相手の占有している資源を待ち合う状態です。資源を占有する順序が同じプロセス同士では,先に最初の資源を確保した方が最後まで進めるので,デッドロックは起きません。

プロセスAの占有順序は X → Y → Z です。

  • B(X → Y → Z):Aと同じ順序なので,デッドロックは起きません。
  • C(Z → X → Y):AがXを占有し,CがZを占有した状態で,CはXを待ち,AはYを確保した後にZを待つことになり,デッドロックが起きる可能性があります。
  • D(Z → Y → X):AがXを占有し,DがZ(とY)を占有した状態で,AはY又はZを待ち,DはXを待つことになり,デッドロックが起きる可能性があります。

したがって,Aとデッドロックを起こす可能性があるのは CとD です。

  • ア: B,C,D
    誤り。BはAと占有順序が同じなので,デッドロックは起きません。

  • イ: C,D
    正しい。CとDはAと異なる順序で資源を占有するため,デッドロックの可能性があります。

  • ウ: Cだけ
    誤り。Dもデッドロックを起こす可能性があります。

  • エ: Dだけ
    誤り。Cもデッドロックを起こす可能性があります。


答え

イ: C,D

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

平成23年度秋期の他の問題