過去問解きまくり研究所 ホーム

平成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     │
  └──────────┴────────┴────────┴──────────┘
答えと解説を見る

✓ これが正解イC,D

解説

取る順序が食い違う相手とだけ輪ができます。

表に並んでいる数値は、そのプロセスが資源を何番目に占有するかを表しています。ですからまず、表を取りに行く順番の並びに直します。プロセス A は資源 X、資源 Y、資源 Z の順です。プロセス B も同じ並びです。プロセス C は資源 Z、資源 X、資源 Y の順で、プロセス D は資源 Z、資源 Y、資源 X の順です。デッドロックは、互いに相手が握っているものを待ち合って、どちらも先へ進めなくなる状態です。つまり待ちの関係が輪になったときに起こります。ここで要になるのは、並びがそろっているかどうかです。同じ並びで取りに行く相手どうしでは、先に始めたほうが順に握っていき、後から来たほうは一つ目の入口で止まったまま待ちます。追い越しが起こらないので、握ったまま相手を待つ形にならず、輪はできません。並びが食い違う相手とは、一方が先頭のものを握り、もう一方が別のものを握った状態で、互いに相手の持ち分を待つ場面を作れます。排他制御では占有の順番を全体でそろえておくのが定石ですが、この設問はその定石を裏返し、そろっていない相手を探させる形になっています。

ほかの選択肢はなぜ違うのか

この問題の用語

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

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)