2020年 秋期 応用情報技術者 午前 問17

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

プロセス 資源の占有順序
資源X 資源Y 資源Z
A 1 2 3
B 1 2 3
C 2 3 1
D 3 2 1

 ア  B、C、D  イ  C、D  ウ  Cだけ  エ  Dだけ


答え イ


解説
デッドロックを防ぐためには、各プロセスが資源を占有する順番を同じにするか、複数の資源を占有する状態を作らないことである。
今回のプロセスの処理では、各プロセスは複数の資源を占有する仕様なので、資源を占有する順番を同じにすれば、デッドロックを防ぐことができる。
プロセスA〜Dの資源の占有順序を見るとプロセスAとプロセスBは資源の占有順序が同じなので、プロセスAとプロセスBでデッドロックは発生しない。
しかし、プロセスAからみて、プロセスCとプロセスDは資源の占有順序が異なるのでデッドロックを起こす可能性がある。(イ)


キーワード
・デッドロック

キーワードの解説
  • デッドロック(deadlock)
    複数のプロセス(処理)で、互いに相手が占有している資源を占有しようとして、処理が停止することです。
    プロセスがA、B、資源がX、YのときにプロセスAが資源Aを占有し、プロセスBが資源Yを占有している状態で、プロセスAが資源Yの占有待ちになり、プロセスBが資源Xの占有待ちになると、プロセスAとBはデッドロック状態になります。

もっと、「デッドロック」について調べてみよう。

戻る 一覧へ 次へ