問題
デッドロックの発生に必要な4条件として誤っているものはどれか。
選択肢
- 1相互排他(mutual exclusion)
- 2プリエンプション可能性(資源を強制的に取り上げられる)
- 3保持と待機(hold and wait)
- 4循環待ち(circular wait)
正解
2. プリエンプション可能性(資源を強制的に取り上げられる)
詳しい解説を見る解説を閉じる
解説
デッドロック発生に必要な4条件は、①相互排他(資源を同時に共有できない)、②保持と待機(資源を保持したまま別の資源を待つ)、③ノンプリエンプション(他プロセスが保持する資源を強制的に取り上げられない)、④循環待ち(資源待ちの関係が環状につながる)である。「プリエンプション可能性」は③の正反対であり、資源を強制的に取り上げられるのであれば互いに待ち続ける膠着状態は成立しないため、4条件に含まれず本問の正解となる。逆にいえば、4条件のうちどれか1つでも成立を崩せばデッドロックは予防でき、全プロセスで資源の獲得順序を統一して循環待ちを断つ方法が代表的である。「排他・保持・非剥奪・循環」の4語で暗記するとよい。
一問一答
全400問を繰り返し学習