IPA過去問ドリル

平成26年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問7

テクノロジ/ソフトウェア

二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。

出典:平成26年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問7

正解:イ

解説

二つのタスクが二つの資源を排他的に使用する場合,それぞれのタスクが異なる順序で資源を獲得しようとすると,互いに相手が既に獲得している資源の解放を待ち合う循環待ちの状態,すなわちデッドロックが発生するおそれがあります。この循環待ちを防ぐ代表的な方法は,全てのタスクが資源を獲得する順序を統一することです。順序を共通にすれば,一方のタスクが先に必要な資源を確保できた場合,もう一方のタスクは同じ順序で資源を要求するため,循環した待ち合いが起こりません。

選択肢ごとの解説

  • 誤り。一方のタスクの優先度を高くするだけでは,資源の獲得順序が異なる限り循環待ちの構造自体は解消されず,デッドロックの発生を防ぐ根本的な対策にはなりません。
  • 正しい。両方のタスクが資源を獲得する順序を同じにすれば,資源獲得の循環待ちが発生しなくなり,デッドロックの発生を防ぐことができます。
  • 誤り。資源獲得の順序を両方のタスクで逆にすると,互いに相手が確保した資源を待つ循環待ちの状況が発生しやすくなり,むしろデッドロックを誘発します。
  • 誤り。優先度をそろえるだけでは資源の獲得順序の問題は解決されず,デッドロックの発生を防ぐ対策にはなりません。
エンベデッドシステムスペシャリストの過去問を演習モードで解く