令和元年度春期 応用情報技術者試験 午前 問18
二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。
- ア 一方のタスクの優先度を高くする。
- イ 資源獲得の順序を両方のタスクで同じにする。
- ウ 資源獲得の順序を両方のタスクで逆にする。
- エ 両方のタスクの優先度を同じにする。
解答・解説を見る
正解:イ
AI解説
デッドロックは、二つのタスクが互いに相手の確保した資源の解放を待ち続けることで発生する。両タスクが資源を同じ順序で獲得するようにすれば、先に第1資源を確保したタスクが必ず先へ進めるため、互いに待ち合う循環(環状待ち)が起こらずデッドロックを防止できる。 ア: 誤り。優先度を高くしても、低優先度タスクが資源を保持したままなら高優先度タスクは待たされるため、デッドロックの防止にはならない。 イ: 正しい。資源獲得順序を統一すれば、循環的な待ち状態(環状待ち)が構造的に発生し得なくなる。 ウ: 誤り。獲得順序を互いに逆にすると、各タスクが片方ずつ資源を確保して相手の資源を待つ状態になりやすく、デッドロックが最も発生しやすい形である。 エ: 誤り。優先度を同じにしても資源の獲得順序とは無関係であり、デッドロックは防げない。 💡 デッドロック対策の代表は「資源獲得順序の統一」。逆順獲得が典型的な発生パターンという対比で覚えると、正誤が即断できる。
出典:令和元年度 春期 応用情報技術者試験 午前 問18 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。