正解は イ
デッドロックは「循環待ち」が発生するときに起こります。プロセスAの資源占有順序を確認し、同時実行したときに循環する組み合わせを探します。問題の表(図)からプロセスAの占有順序はX→Y→Zと推定されます。デッドロックの必要条件の一つは「占有と待機」+「循環待ち」です。循環待ちが発生するには、AがXを保持してYを待ち、相手がYを保持してXを待つ(または間接的な循環)状況が必要です。プロセスCとDはAと逆順の資源占有(例:Z→Y→XやY→X→Z等)を持つため循環が生じます。プロセスBはAと同じ順序のため循環が起きません。したがって「C, D」が正解(選択肢b)です。
デッドロックの判定は「循環待ちが発生するか」を確認。同じ順序で資源を要求するプロセス間ではデッドロックは起きない。異なる順序を持つプロセスの組み合わせで循環する場合のみ危険。資源要求順序の矢印を書いて循環を視覚化すると判断しやすい。