令和7年度秋期 応用情報技術者試験 午前 問18
二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。
- ア 一方のタスクの優先度を高くする
- イ 資源獲得の順序を両方のタスクで同じにする
- ウ 資源獲得の順序を両方のタスクで逆にする
- エ 両方のタスクの優先度を同じにする
解答・解説を見る
正解:イ
AI解説
デッドロックは複数タスクが互いに相手の保持する資源を待ち合う循環待ちによって発生する。全てのタスクが資源を獲得する順序を統一しておけば、資源獲得の順序が循環することがなくなり、デッドロックの発生を防止できる。 ア: 優先度を変えるだけでは、両タスクがそれぞれ異なる資源を先に獲得してから他方を要求する状況(循環待ち)自体は解消されない。 イ: 正しい。資源獲得順序を全タスクで統一すると、互いが逆順で資源を取り合う循環待ちが発生しなくなりデッドロックを防げる。 ウ: 獲得順序を逆にすると、一方が資源Aを確保後に資源Bを、他方が資源Bを確保後に資源Aを要求する状況が生まれやすく、むしろデッドロックを誘発する。 エ: 優先度を同じにしても、資源を獲得する順序自体が異なっていれば循環待ちの可能性は残り、デッドロック防止には直結しない。 💡 デッドロックの4条件(相互排除・保持と待機・非横取り・循環待機)のうち、資源獲得順序の統一は『循環待機』の条件を崩す代表的な防止策である。
出典:令和7年度 秋期 応用情報技術者試験 午前 問18 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。