正解は イ
デッドロックは、複数のタスクが互いに相手の保持する資源の解放を待ち続け、どのタスクも処理を進められなくなる状態です。発生には「相互排他・保持と待機・横取り不可・循環待ち」の4条件がすべて成立する必要があり、いずれか1つを崩せば防止できます。本問のように2タスクが2資源を排他使用する場合、両タスクが資源を獲得する順序を統一すれば「循環待ち」が成立しなくなります。例えば両タスクとも必ず資源1→資源2の順で獲得すれば、一方が資源1を持っている間、もう一方は資源1の解放を待つだけで、互いに資源を1つずつ持ち合って相手を待つという循環構造が決して生じません。したがって選択肢bの「資源獲得の順序を両方のタスクで同じにする」が正解です。実装上は、すべての資源に一意の順序番号を割り当て、各タスクが番号の昇順でのみ資源を獲得するよう規約化する手法(資源順序付け)が、デッドロック防止の代表的な方法として知られています。
デッドロックの4条件(相互排他・保持と待機・横取り不可・循環待ち)のいずれか1つを崩せば防止できる。資源獲得順序を全タスクで統一する=循環待ちの破壊が定番手法。「逆順」は最も危険なので注意。