デッドロックを防ぐ方法

デッドロックは、複数のタスクが互いに相手の確保している資源の解放を待ち合い、処理が完全に停止してしまう現象です。 代表的な発生原因は、タスクAが資源1を確保した状態で資源2を要求し、同時にタスクBが資源2を確保した状態で資源1を要求するような「交差した資源の要求」が発生することです。 これを予防するための最も確実なプログラミング手法は、「 全てのタスクにおいて、資源を獲得する順番を同じに統一する 」ことです。順序を統一すれば、どちらか一方のタスクが最初の資源を確保した時点で、他方のタスクは待ち状態となるため、環状の待ち状態(デッドロック)を回避できます。

二つのタスクが共用する二つの資源を排他的に使用するとき、デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。

出典令和4年度 秋期 高度情報処理技術者試験 午前Ⅰ 問6
ア
一方のタスクの優先度を高くする。
イ
資源獲得の順序を両方のタスクで同じにする。
ウ
資源獲得の順序を両方のタスクで逆にする。
エ
両方のタスクの優先度を同じにする。