平成26年度 秋期 応用情報技術者試験 午前 問16
三つの資源 X~Z を占有して処理を行う四つのプロセス A~D がある。各プロセスは処理の進行に伴い,表中の数値の順に資源を占有し,実行終了時に三つの資源を一括して解放する。プロセス A とデッドロックを起こす可能性があるプロセスはどれか。
資源の占有順序
| プロセス | 資源X | 資源Y | 資源Z |
|---|---|---|---|
| A | 1 | 2 | 3 |
| B | 1 | 2 | 3 |
| C | 2 | 3 | 1 |
| D | 3 | 2 | 1 |
キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:イ
デッドロックは,互いに相手が占有している資源の解放を待ち合う状態です。資源を占有する順序が同じプロセスどうしではデッドロックは起きませんが,順序が異なると起きる可能性があります。
プロセス A は X→Y→Z の順に占有します。
- B:X→Y→Z で A と同じ順序なので,デッドロックは起きません(先に X を確保した方が最後まで進めます)。
- C:Z→X→Y の順です。A が X を占有し,C が Z を占有した状態になると,A は(Y の後に)Z を待ち,C は X を待つため,デッドロックになる可能性があります。
- D:Z→Y→X の順です。A が X を占有し,D が Z と Y を占有した状態になると,A は Y を待ち,D は X を待つため,デッドロックになる可能性があります。
したがって,A とデッドロックを起こす可能性があるのは C と D です。
-
ア: B,C,D
誤り。B は A と同じ順序で資源を占有するので,A とデッドロックを起こすことはありません。 -
イ: C,D
正しい。C も D も A と資源の占有順序が異なり,互いに相手の資源を待つ状態になる可能性があります。 -
ウ: Cだけ
誤り。D も A と占有順序が異なり,デッドロックを起こす可能性があります。 -
エ: Dだけ
誤り。C も A と占有順序が異なり,デッドロックを起こす可能性があります。
答え
イ: C,D
出典:平成26年度 秋期 応用情報技術者試験 午前 問16