正答2
解説
正解は2です。
デッドロックは、複数のタスクが互いに相手の確保した資源を待ち続けて、どちらも進めなくなる状態です。
2つのタスクが資源を逆の順序で確保すると、この循環待ちが起こります。
【選択肢別解説】
1:× 優先度は実行の順番を決めるだけです。
資源を確保したまま相手の資源を待つ状況は変わらないので、デッドロックは防げません。
2:○ 両方のタスクが同じ順序で資源を確保すれば、一方が最初の資源を確保した時点で、他方はその資源を待つだけになります。
循環待ちが起こらないので、デッドロックを防げます。
3:× 確保の順序を逆にすると、タスク1が資源Aを、タスク2が資源Bを確保して互いに相手を待つ状況が起こります。
これはデッドロックの発生条件そのものです。
4:× 優先度を同じにしても、資源を確保する順序の問題は解決しません。
デッドロックの防止策にはなりません。
【ポイント】
デッドロックの防止策として最もよく出題されるのは「資源の確保順序を統一する」ことです。
循環待ちを断ち切れば、デッドロックは発生しません。