ソフトウェア開発技術者平成20年秋期 午前問25

問25

二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。
  • 一方のタスクの優先度を高くする。
  • 資源獲得の順序を両方のタスクで同じにする。
  • 資源獲得の順序を両方のタスクで逆にする。
  • 両方のタスクの優先度を同じにする。
  • [出題歴]
  • 応用情報技術者 R4秋期 問16
  • 応用情報技術者 H31春期 問18
  • ソフトウェア開発技術者 H18春期 問26

分類

テクノロジ系 » ソフトウェア » オペレーティングシステム

正解

解説

デッドロックは、共有資源を使用する2つ以上のプロセスが、互いに相手プロセスが必要とする資源を排他的に使用していて、互いのプロセスが相手の使用している資源の解放を待っている状態です。デッドロックが発生すると双方のプロセスが永遠に待ち状態になってしまい、処理の続行ができなくなってしまいます。
25.png/image-size:312×159
  • 一方のタスクの優先度を高くしても、それによって他方のタスクが使用している資源が解放されるわけではないので、デッドロックの発生を防ぐことはできません。
  • 正しい。デッドロックの発生を防ぐには共有資源の使用順序を同じにします。例えば、タスクAがX→Y→Zという順で資源の獲得をするなら、タスクBも同じくX→Y→Zで資源を獲得するようにします。
  • デッドロックは資源獲得の順序が異なるときに発生するので、資源獲得の順序を逆にするとデッドロックが発生しやすくなります。
  • デッドロックの発生は、優先度の高低とは無関係です。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop