この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は イ

解説

デッドロックは「タスクAが資源1を保持してタスクBを待ち、タスクBが資源2を保持してタスクAを待つ」という循環待ちで発生する。これを防ぐには資源獲得の順序を全タスクで同じにすることで循環待ちを防止できる。例えば全タスクが「資源1→資源2」の順で獲得するルールにすれば、タスクAが資源1を持っている間にタスクBが資源2を先に取ることができず、循環待ちが生じない。選択肢bの「資源獲得の順序を両方のタスクで同じにする」が正解。デッドロックの4条件(相互排他・保持待機・不奪取・循環待機)のうち「循環待機」を排除する方法。

なぜ他の選択肢は違うのか

選択肢 ア
「一方のタスクの優先度を高くする」はデッドロック後の回避策(優先度の低いタスクを強制終了)には使えるが、デッドロック発生を防ぐ予防策にはならない。
選択肢 ウ
「資源獲得の順序を両方のタスクで逆にする」は誤り。順序を逆(タスクA:資源1→2、タスクB:資源2→1)にするとかえって循環待ちが発生しやすくなる。
選択肢 エ
「両方のタスクの優先度を同じにする」は優先度逆転問題の対策には関係するが、デッドロック防止には無効。

解くときのポイント

デッドロック防止策:資源獲得順序を全タスクで統一(循環待機を排除)。また「必要な資源を一括獲得する」(保持待機の排除)もデッドロック防止策。デッドロックの4条件全てが同時成立する場合にデッドロックが発生する。