データベース
基本情報技術者試験 科目A免除 修了試験 20180128 実施分 問18
三つの資源 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免除 修了試験 20180128 実施分 問18
答えと解説を見る
正解:イ
覚える知識
デッドロックの定義
デッドロックは、複数のプロセスが互いの保持する資源の解放を待ち合って永久に進まなくなる状態。
この問題で必要なこと
デッドロックは資源の占有順序が逆になる組で起こる。AはX→Y→Zの順なので、Zを先に取るC(Z→X→Y)とD(Z→Y→X)がデッドロックを起こす可能性があり、Bは同順なので起こらない。
ひっかけ
Bは占有順序がAと同じでデッドロックしない。順序の逆転を見落とすとB,C,Dを選んでしまう。
この知識の出題:本試験系 2 回・免除試験 4 回(公開問題での観測値)