令和7年度 秋期 応用情報技術者試験 午前 問18
テクノロジ/ソフトウェア二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。
出典:令和7年度 秋期 応用情報技術者試験 午前 問18
- ア一方のタスクの優先度を高くする。
- イ資源獲得の順序を両方のタスクで同じにする。
- ウ資源獲得の順序を両方のタスクで逆にする。
- エ両方のタスクの優先度を同じにする。
正解:イ
解説
デッドロックは,複数のタスクが互いに相手の確保している資源の解放を待ち合う「循環待ち」によって発生します。全てのタスクが資源を同じ順序で獲得するようにすれば循環待ちが起こり得なくなるため,デッドロックを防止できます。
選択肢ごとの解説
- ア誤り。優先度を変えても,先に資源を確保したタスクが相手の資源を待つという循環待ちの構造は解消されません。
- イ正しい。資源獲得の順序を全タスクでそろえると循環待ちが生じなくなり,デッドロックを防げます。
- ウ誤り。獲得順序を逆にすると,一方が資源1,他方が資源2を確保した状態で互いを待つという典型的なデッドロックが起こりやすくなります。
- エ誤り。優先度を同じにしても資源の獲得順序は変わらないので,デッドロックの発生は防げません。