令和4年度 秋期 応用情報技術者試験 午前 問16
テクノロジOS・ソフトウェアタスク管理・排他制御
二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。
解答・解説
正解: イ. 資源獲得の順序を両方のタスクで同じにする。
デッドロックとは、複数のタスクが互いに他方が占有している資源の解放を待ち合い、永久に処理が進まなくなる状態を指します。これを防ぐ有効な方法の一つが、すべてのタスクにおいて資源獲得の順序を同じにすることです。これにより、環状に資源の解放を待ち合う状態(循環待ち)が発生しなくなります。
各選択肢の解説
- ア: 一方のタスクの優先度を高くする。
優先度を変更しても、資源を要求する順序が異なれば、デッドロックは発生する可能性があります。 - イ: 資源獲得の順序を両方のタスクで同じにする。
正解です。資源獲得の順序を統一することで、環状待ち状態が発生せず、デッドロックを防ぐことができます。 - ウ: 資源獲得の順序を両方のタスクで逆にする。
獲得順序を逆にすると、互いに相手が保持している資源を要求し合うことになり、最もデッドロックが発生しやすくなります。 - エ: 両方のタスクの優先度を同じにする。
優先度を同じにしても、資源の要求順序が異なればデッドロックの発生を防ぐことはできません。