FE SUBJECT A
基本情報技術者 科目Aの問題解説:デッドロックの説明はどれか。
問題
デッドロックの説明はどれか。
- ア メモリが不足して処理が停止する状態
- イ CPUの使用率が100%に達する状態
- ウ 複数のプロセスが互いに相手の資源解放を待ち続ける状態(正解)
- エ プロセスが無限ループに陥る状態
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目A範囲
正解と解説
正解:複数のプロセスが互いに相手の資源解放を待ち続ける状態
どんな論点か:デッドロックは、複数のプロセスやスレッドが互いに相手の持っている資源の解放を待ち続け、どれも先に進めなくなる状態です。例えば、Aがプリンタを持ってディスクを待ち、Bがディスクを持ってプリンタを待つような状況で起こります。
ほかの選択肢:メモリ不足、CPU使用率100%,無限ループは処理停止や遅延の原因になり得ますが、「互いに資源を待つ」というデッドロックの定義とは異なります。
軽い類題:デッドロックの典型条件には、相互排除、保持と待機、横取り不可、循環待ちがあります。
対処の考え方:デッドロックは発生に必要な4条件(相互排除・保持と待機・横取り不可・循環待ち)のいずれかを崩せば防げます。例えば資源に番号を付け常に小さい番号から確保させると循環待ちが起きません。発生を許しつつ周期的に検出して片方を強制終了・ロールバックする方法もあります。
他の選択肢はなぜ違う?
- アメモリ不足は資源枯渇の問題で、相互待ちではない。
- イCPU使用率100%は高負荷の状態の話。
- エ無限ループは1つのプロセス内の問題。デッドロックは複数プロセスの相互待ち。
この問題について
IPAが公開するシラバス・試験範囲・公開問題の出題形式を参考にした独自作成問題。公式問題・過去問題の転載ではありません。
公式試験問題、過去問題、公式サンプル問題、市販教材の問題文を転載したものではありません。