問17令和6年度 春期テクノロジ系
三つの資源X~Zを占有して処理を行う四つのプロセスA~Dがある。各プロセスは処理の進行に伴い,表中の数値の順に資源を占有し,実行終了時に三つの資源を一括して解放する。プロセスAと同時にもう一つプロセスを動かした場合に,デッドロックを起こす可能性があるプロセスはどれか。

- アB,C,D
- イC,D
- ウCだけ
- エDだけ
正解はイ
解説 本サイト独自(IPA公表のものではありません)
イ Aの占有順序はX,Y,Zである。CはZ,X,Yなので,AがXを,CがZを占有すると互いの資源を待つ。DはZ,Y,Xなので,AとDがXとZをそれぞれ占有した後,Yの占有状況に応じて互いの資源を待つ可能性がある。したがってC,Dである。
- ア Bも資源を競合するというだけでデッドロック候補に含めている。BはAと同じX,Y,Zの順なので,先にXを占有した側だけが先へ進み,循環待ちにはならない。
- ウ Dでは問題が起きないと見落としている。AがXを,DがZを占有した後,どちらがYを占有しても,一方が保持する資源を他方が待つ循環が成立し得る。
- エ Cでは問題が起きないと見落としている。AがXを保持してZを待ち,CがZを保持してXを待つ進行が可能なので,Cとの同時実行でも循環待ちが成立し得る。
この解説は間違っています
この解説は,別のモデルによるレビューを受けています。
出典:令和6年度 春期 応用情報技術者試験 午前 問17