三つの資源 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を、DがZを占有すると、AはYかZを、DはYかXを待ち、互いに進めなくなります。
ア:BはAと同じX→Y→Zの順に占有します。先にXを取ったプロセスが残りも取れるので、Bとはデッドロックが起きません。
ウ:DもZを最初に占有し、Xを最後に要求します。AがXを、DがZを持つと互いに待ち合うので、Dもデッドロックを起こす可能性があります。
エ:CはZを先に占有してからXを要求します。AがXを持ったままZを待つと互いに待ち合うので、Cもデッドロックを起こす可能性があります。
出典:平成26年度 秋期 応用情報技術者試験 問16
全年度から出題。10問で実力を判定します。登録不要。
出典:平成26年度 秋期 応用情報技術者試験 問16(独立行政法人情報処理推進機構)
解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方