問題
三つの資源 X〜Z を占有して処理を行う四つのプロセス A〜D がある。各プロセスは処理の進行に伴い、表中の数値の順に資源を占有し、実行終了時に三つの資源を一括して解放する。プロセス A と同時にもう一つプロセスを動かした場合に、デッドロックを起こす可能性があるプロセスはどれか。

選択肢
- 1B、C、D
- 2C、D
- 3C だけ
- 4D だけ
正解
2. C、D
詳しい解説を見る解説を閉じる
解説
表の数値は資源を占有する順序を表し、各プロセスの獲得順序は A:X→Y→Z、B:X→Y→Z、C:Z→X→Y、D:Z→Y→X となる。デッドロックは、2 プロセスが互いに相手の占有資源を待ち合う循環待ちで発生する。A は X を最初に確保し最後に Z を要求するのに対し、C も D も先頭で Z を確保してから X を要求する。よって A が X を保持して Z を待ち、C 又は D が Z を保持して X を待つ循環待ちが起こり得る。一方 B は A と同じ X→Y→Z の順で確保するため A と衝突しない。したがってデッドロックの可能性があるのは C と D で、イ(C、D)が正解。(出典: 令和6年度 春期 応用情報技術者試験 午前 問17)
一問一答
全400問を繰り返し学習