| プロセス | 資源 X | 資源 Y | 資源 Z |
|---|---|---|---|
| A | 1 | 2 | 3 |
| B | 1 | 2 | 3 |
| C | 2 | 3 | 1 |
| D | 3 | 2 | 1 |
三つの資源 X 〜 Z を占有して処理を行う四つのプロセス A 〜 D がある。各プロセスは処理の進行に伴い,表中の数値の順に資源を占有し,実行終了時に三つの資源を一括して解放する。プロセス A と同時にもう一つプロセスを動かした場合に,デッドロックを起こす可能性があるプロセスはどれか。
イ. C,D
デッドロックは、二つのプロセスが互いに相手の保持する資源を待ち合うときに発生し、これは資源の占有順序が異なることが原因となる。Aの占有順序は X→Y→Z である。Bも X→Y→Z とAと全く同じ順序なので、先に取った方が使い終えるまで他方が待つだけで待ち合いは起きずデッドロックしない。一方、Cは Z→X→Y、Dは Z→Y→X とAと異なる順序を含み、Aと逆向きに資源を取り合う状況が生じ得るためデッドロックの可能性がある。よってデッドロックを起こし得るのはCとDであり、イが正解である。
応用情報技術者試験 令和6年度春期 午前 の過去問一覧へ戻る・問17