ソフトウェア

基本情報技術者試験デッドロック」の問題

テクノロジ系ソフトウェア難易度:normal
デッドロックが発生するための必要条件(コフマンの4条件)に含まれないものはどれか。
確保した資源を、より優先度の高いプロセスが横取り(プリエンプション)できること
あるプロセスが資源を保持したまま別の資源の割当てを待つこと(保持と待機)
複数のプロセスが資源解放を環状に待ち合うこと(循環待ち)
一度割り当てた資源は、それを保持している本人が自発的に解放するまで他のプロセスへ移すことができないこと(非プリエンプション)
正解
確保した資源を、より優先度の高いプロセスが横取り(プリエンプション)できること

コフマンの4条件は相互排他・保持と待機・非プリエンプション・循環待ちである。資源を横取り(プリエンプション)できる状態は非プリエンプション条件を崩しデッドロックを防ぐ方向なので、必要条件には含まれず正しい。

?選択肢ごとの解説

ア ○コフマンの4条件は相互排他・保持と待機・非プリエンプション・循環待ちである。資源を横取り(プリエンプション)できる状態は非プリエンプション条件を崩しデッドロックを防ぐ方向なので、必要条件には含まれず正しい。
イ ×保持と待機は4条件の1つで、資源を握ったまま別資源を待つことがデッドロックの一因となるため必要条件に含まれる。
ウ ×循環待ちは4条件の1つで、プロセスが環状に互いの資源解放を待つ状態であり必要条件に含まれる。
エ ×非プリエンプションは4条件の1つで、割り当てた資源を強制的に取り上げられないことがデッドロックの成立要因となる。

くわしく

コフマンの4条件はすべて同時に成立して初めてデッドロックが起こる。逆に言えばいずれか1つを崩せば防止できる。横取り(プリエンプション)を許すのは非プリエンプション条件を否定する防止策であり、条件そのものではない。

本番での押さえどころ

試験のコツ

4条件は『相互排他・保持と待機・非プリエンプション・循環待ち』を頭文字で暗記する。『どれかを否定=防止策』と対で押さえる。

覚え方

4条件を『独占・抱え待ち・奪えない・輪』と4語で覚え、横取り可能はこの『奪えない』の反対だと気づく。

よくある誤り

4条件の名称を断片的に覚え、防止策(横取り可能・順序付け確保など)を条件そのものと混同する誤りが多い。

ソフトウェアの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0219

【基本情報技術者試験】デッドロックの問題 — 解答・解説|ukamiru 過去問