二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。
平成31年度 春期 応用情報技術者 問18
テクノロジ系
正解と解説
正解 イ
両方のタスクが資源を同じ順序で獲得すれば、互いに相手の資源を待つ循環待ちが起きず、デッドロックを防げます。
デッドロックは、タスクAが資源1を確保したまま資源2を待ち、タスクBが資源2を確保したまま資源1を待つような循環待ちで発生します。両方のタスクが資源1、資源2の順に獲得すると決めれば、資源1を先に確保できたタスクだけが資源2に進みます。もう一方は資源1の解放を待つだけなので、循環待ちは生じません。資源獲得の順序をそろえることは、デッドロックの発生条件のうち循環待ちを崩す代表的な方法です。
ア:優先度は実行の順番を決めるだけです。資源を確保したまま相手の資源を待つ状態は、優先度に差があっても起こります。
ウ:獲得の順序を逆にすると、一方が資源1、もう一方が資源2を先に確保して互いに待つ状態になります。これはデッドロックが起きる典型的な条件です。
エ:優先度を同じにしても、資源の獲得順序が異なれば循環待ちは起こります。デッドロックを防ぐことはできません。
出典:平成31年度 春期 応用情報技術者試験 問18
全年度から出題。10問で実力を判定します。登録不要。
出典:平成31年度 春期 応用情報技術者試験 問18(独立行政法人情報処理推進機構)
解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方