三つの資源X~Zを占有して処理を行う四つのプロセスA~Dがある。各プロセスは処理の進行に伴い,表中の数値の順に資源を占有し,実行終了時に三つの資源を一括して解放する。プロセスAと同時にもう一つプロセスを動かした場合に,デッドロックを起こす可能性があるプロセスはどれか。
| プロセス | 資源の占有順序 資源X | 資源の占有順序 資源Y | 資源の占有順序 資源Z |
|---|---|---|---|
| A | 1 | 2 | 3 |
| B | 1 | 2 | 3 |
| C | 2 | 3 | 1 |
| D | 3 | 2 | 1 |
テクノロジ系
三つの資源X~Zを占有して処理を行う四つのプロセスA~Dがある。各プロセスは処理の進行に伴い,表中の数値の順に資源を占有し,実行終了時に三つの資源を一括して解放する。プロセスAと同時にもう一つプロセスを動かした場合に,デッドロックを起こす可能性があるプロセスはどれか。
| プロセス | 資源の占有順序 資源X | 資源の占有順序 資源Y | 資源の占有順序 資源Z |
|---|---|---|---|
| A | 1 | 2 | 3 |
| B | 1 | 2 | 3 |
| C | 2 | 3 | 1 |
| D | 3 | 2 | 1 |
正解 イ
Aと異なる順序で資源を占有するCとDは、互いに相手の資源を待ち合う可能性があり、デッドロックを起こしえます。
Aの占有順はX→Y→Zです。BもX→Y→Zで同じ順序なので、先にXを得た側が最後まで進み、デッドロックは起きません。CはZ→X→Yの順です。AがXを、CがZを占有すると、AはZを、CはXを待ち続けます。DはZ→Y→Xの順です。AがXとYを、DがZを占有すると、AはZを、DはYを待ち続けます。したがって、デッドロックを起こす可能性があるのはCとDです。
ア:BはAと同じX→Y→Zの順で資源を占有します。占有順序がそろっていれば循環待ちは生じず、デッドロックは起きません。
ウ:DはZから占有し、Aは最後にZを要求します。AがXとYを、DがZを持つと互いに待ち合うため、Dもデッドロックを起こしえます。
エ:CはZを先に占有し、次にXを要求します。AがXを、CがZを持つと互いに待ち合うため、Cもデッドロックを起こしえます。
出典:令和2年度 10月 応用情報技術者試験 問17
全年度から出題。10問で実力を判定します。登録不要。
出典:令和2年度 10月 応用情報技術者試験 問17(独立行政法人情報処理推進機構)
解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方