HOME»応用情報技術者令和4年秋期»午前問16
応用情報技術者令和4年秋期 午前問16
問16
二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。
- 一方のタスクの優先度を高くする。
- 資源獲得の順序を両方のタスクで同じにする。
- 資源獲得の順序を両方のタスクで逆にする。
- 両方のタスクの優先度を同じにする。
分類
テクノロジ系 » ソフトウェア » オペレーティングシステム
正解
イ
解説
デッドロックは、共有資源を使用する2つ以上のプロセスが、互いに相手プロセスが必要とする資源を排他的に使用していて、互いのプロセスが相手の使用している資源の解放を待っている状態です。デッドロックが発生すると双方のプロセスが永遠に待ち状態になってしまい、処理の続行ができなくなってしまいます。

- 一方のタスクの優先度を上げても、他方のタスクが保持している資源はそのことで解放されないため、デッドロックは防止できません。
- 正しい。デッドロックの発生を防ぐには、共有資源の使用順序を同じにします。仮にタスクAが「X→Y→Z」という順で資源を獲得をするなら、タスクBも同じく「X→Y→Z」で資源を獲得するようにします。
- デッドロックは、複数のタスク間で資源獲得の順番が異なるときに起こります。資源の取得順を逆にすれば、デッドロックが発生しやすくなります。
- タスクの優先度を揃えても、デッドロックの発生を防ぐことはできません。