ソフトウェア
デッドロック(Deadlock)が発生するための必要条件(コフマン条件)として誤っているものはどれか。
ア.相互排除(Mutual Exclusion):資源は同時に複数のプロセスが使用できる。正解
イ.占有と待機(Hold and Wait):プロセスが資源を保持したまま他の資源を待つ。
ウ.非プリエンプション(No Preemption):保持中の資源を強制的に取り上げられない。
エ.循環待機(Circular Wait):プロセスが環状に資源を待ち合っている。
解説
デッドロック4条件は「必要条件」。1つでも崩せばデッドロックを防げます。問題は「誤っているもの」を選ぶので、説明が逆になっているアが正解です。
なぜ ア が正解か
コフマンの4条件(デッドロックの必要条件): ① 相互排除: 資源は「1プロセスのみ」が使用可能(共有不可)← アは「複数使用可能」と逆の説明になっている ② 占有と待機: 資源を持ちながら他の資源を待つ ③ 非プリエンプション: 保持資源を強制取得できない ④ 循環待機: A→Bの資源を待ち→B→Aの資源を待つという環 「資源を同時に複数使用できる」なら相互排除が成立しないため、デッドロックは起きません。アの説明は「相互排除の否定」であり、コフマン条件の説明として誤りです。
出典: AI生成問題(学習用)