テクノロジ系6 / 30問
高度情報処理技術者試験・情報処理安全確保支援士試験 令和4年度 秋期 午前I 問6
二つのタスクが共用する二つの資源を排他的に使用するとき、デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。
選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】イ
デッドロックは、複数のタスクが互いに相手の解放する資源を待ち続け、どちらも処理を進められなくなる状態です。例えば、タスク1が資源Aを確保して資源Bを待ち、タスク2が資源Bを確保して資源Aを待つと、循環した待ち状態になります。両タスクが必ず資源A、資源Bの順に獲得するよう統一すれば、資源Bを確保したまま資源Aを待つタスクは存在せず、循環待ちを防げます。したがって、イが正解です。
アの一方のタスクの優先度を高くする方法は誤りです。優先度はCPUを割り当てる順序に関係しますが、既に確保された排他資源を強制的に解放するものではないので、デッドロックを防止できません。
ウの獲得順序を逆にする方法は誤りです。一方がAからB、他方がBからAの順に獲得することになり、互いに一つずつ資源を確保して待つ典型的なデッドロックを招きます。
エの両タスクの優先度を同じにする方法も誤りです。優先度が同じでも、資源の確保順序が異なれば循環待ちは発生します。
【ポイント】 デッドロックの発生条件には、相互排除、占有待ち、横取り不可、循環待ちがあります。 資源獲得順序の統一は、このうち循環待ちが成立しないようにする代表的な防止策です。 優先度の設定と、排他資源を獲得する順序は別の問題として区別します。
出典:令和4年度 秋期 高度情報処理技術者試験・情報処理安全確保支援士試験 午前I 問6
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の30問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる