| プロセス | 資源の占有順序 | ||
|---|---|---|---|
| 資源 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はX以外から始まり順序が異なり、DはZから始まって順序が逆になるため、AとC、AとDの組ではそれぞれ取得順序が食い違い待ち合いが生じうる。したがってデッドロックの可能性があるのはCとDで、イが正解。
応用情報技術者試験 令和2年度 午前 の過去問一覧へ戻る・問17