オペレーティングシステム(全131問中90問目)
No.90解説へ
二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。
出典:平成20年秋期 問25
- 一方のタスクの優先度を高くする。
- 資源獲得の順序を両方のタスクで同じにする。
- 資源獲得の順序を両方のタスクで逆にする。
- 両方のタスクの優先度を同じにする。
正解 イ問題へ
広告
解説
デッドロックは、共有資源を使用する2つ以上のプロセスが、互いに相手プロセスが必要とする資源を排他的に使用していて、互いのプロセスが相手の使用している資源の解放を待っている状態です。デッドロックが発生すると双方のプロセスが永遠に待ち状態になってしまい、処理の続行ができなくなってしまいます。
- 一方のタスクの優先度を高くしても、それによって他方のタスクが使用している資源が解放されるわけではないので、デッドロックの発生を防ぐことはできません。
- 正しい。デッドロックの発生を防ぐには共有資源の使用順序を同じにします。例えば、タスクAがX→Y→Zという順で資源の獲得をするなら、タスクBも同じくX→Y→Zで資源を獲得するようにします。
- デッドロックは資源獲得の順序が異なるときに発生するので、資源獲得の順序を逆にするとデッドロックが発生しやすくなります。
- デッドロックの発生は、優先度の高低とは無関係です。
広告