令和4年度秋期 応用情報技術者試験 午前 問16
二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。
- ア 一方のタスクの優先度を高くする。
- イ 資源獲得の順序を両方のタスクで同じにする。
- ウ 資源獲得の順序を両方のタスクで逆にする。
- エ 両方のタスクの優先度を同じにする。
解答・解説を見る
正解:イ
AI解説
デッドロックは、複数タスクが複数資源を互いに逆順で確保しようとして待ち合いになることで発生する。両方のタスクで資源を獲得する順序を統一(同じ順序)にすれば、循環待ち(サークル状の待ち)が生じなくなり、デッドロックを防止できる。 ア: 一方のタスクの優先度を高くしても、資源の確保順序自体が変わらなければ循環待ちの構造は解消されず、デッドロックの根本的な防止にはならない。 イ: 両方のタスクで資源獲得の順序を同じにすることで、片方が先に全資源を確保し終えるまで他方は待つだけとなり、循環待ちが起こらずデッドロックを防止できる。 ウ: 資源獲得の順序を両方のタスクで逆にすると、互いに相手が確保済みの資源を待つ状況(循環待ち)が発生しやすくなり、むしろデッドロックの典型的な発生パターンとなる。 エ: 両方のタスクの優先度を同じにしても、資源確保の順序が食い違っていればデッドロックの発生条件は解消されない。 💡 デッドロック防止の基本原則は「資源獲得順序の統一」であり、優先度の調整は解決策にならない点に注意する。
出典:令和4年度 秋期 応用情報技術者試験 午前 問16 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。