正答2
解説
正解は2です。
二つのタスクが二つの資源を取り合うときに、デッドロックを防ぐ方法を問う問題です。
デッドロックは、互いに相手が確保した資源の解放を待ち続け、どちらも先に進めなくなる状態です。
【選択肢別解説】
1:× 優先度を変えても、資源を獲得する順序が逆のままなら、互いの資源を待ち合う状態は起こり得ます。
2:○ 両方のタスクが同じ順序で資源を獲得すれば、先に一つ目の資源を得たタスクが二つ目も得られます。
相手を待ち合う循環が生じないので、デッドロックは発生しません。
3:× 獲得順序を逆にすると、タスク1が資源Aを、タスク2が資源Bを確保して互いに待つ状態になり、デッドロックが起こりやすくなります。
4:× 優先度を同じにしても、資源獲得の順序の問題は解決しません。
【ポイント】
デッドロックの発生条件の一つは「循環待ち」です。
資源に番号を付けて、全タスクが番号の小さい順に獲得するルールにすると循環待ちを防げます。