基本情報技術者試験「デッドロック」の問題
デッドロックが発生するための必要条件(コフマンの4条件)に含まれないものはどれか。
ア確保した資源を、より優先度の高いプロセスが横取り(プリエンプション)できること
イあるプロセスが資源を保持したまま別の資源の割当てを待つこと(保持と待機)
ウ複数のプロセスが資源解放を環状に待ち合うこと(循環待ち)
エ一度割り当てた資源は、それを保持している本人が自発的に解放するまで他のプロセスへ移すことができないこと(非プリエンプション)
正解
ア.確保した資源を、より優先度の高いプロセスが横取り(プリエンプション)できること
コフマンの4条件は相互排他・保持と待機・非プリエンプション・循環待ちである。資源を横取り(プリエンプション)できる状態は非プリエンプション条件を崩しデッドロックを防ぐ方向なので、必要条件には含まれず正しい。
?選択肢ごとの解説
ア ○コフマンの4条件は相互排他・保持と待機・非プリエンプション・循環待ちである。資源を横取り(プリエンプション)できる状態は非プリエンプション条件を崩しデッドロックを防ぐ方向なので、必要条件には含まれず正しい。
イ ×保持と待機は4条件の1つで、資源を握ったまま別資源を待つことがデッドロックの一因となるため必要条件に含まれる。
ウ ×循環待ちは4条件の1つで、プロセスが環状に互いの資源解放を待つ状態であり必要条件に含まれる。
エ ×非プリエンプションは4条件の1つで、割り当てた資源を強制的に取り上げられないことがデッドロックの成立要因となる。
✎くわしく
コフマンの4条件はすべて同時に成立して初めてデッドロックが起こる。逆に言えばいずれか1つを崩せば防止できる。横取り(プリエンプション)を許すのは非プリエンプション条件を否定する防止策であり、条件そのものではない。
✓本番での押さえどころ
試験のコツ
4条件は『相互排他・保持と待機・非プリエンプション・循環待ち』を頭文字で暗記する。『どれかを否定=防止策』と対で押さえる。
覚え方
4条件を『独占・抱え待ち・奪えない・輪』と4語で覚え、横取り可能はこの『奪えない』の反対だと気づく。
よくある誤り
4条件の名称を断片的に覚え、防止策(横取り可能・順序付け確保など)を条件そのものと混同する誤りが多い。
ソフトウェアの他の問題
OS(オペレーティングシステム)が担う最も中心的な役割を説明したものはどれか。実行状態のタスクが、自らの入出力要求の完了を待つために移る状態はどれか。3つのタスクP1・P2・P3が時刻0に同時に到着し、処理時間はそれぞれ8・4・6である。FCFS(到着順)方式でP1→P2→…4つのタスクが時刻0に同時到着し、処理時間はそれぞれ6・2・8・4である。処理時間の短い順に実行するSJF(ノンプリエンプテ…3つのタスクP1・P2・P3が時刻0にこの順で実行可能列に並ぶ。処理時間はP1=5・P2=3・P3=7で、タイムクウォンタム…4つのタスクPA・PB・PC・PDが時刻0に同時到着する。処理時間はPA=6・PB=2・PC=4・PD=8で、優先度はPB・…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0219