SC情報処理安全確保支援士試験 午前Ⅰ

令和4年度秋期 情報処理安全確保支援士 午前Ⅰ 問6

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

  1. ア
    一方のタスクの優先度を高くする。
  2. イ
    資源獲得の順序を両方のタスクで同じにする。
  3. ウ
    資源獲得の順序を両方のタスクで逆にする。
  4. エ
    両方のタスクの優先度を同じにする。
解き方のヒントを見る

午前I 問06:資源を取る順番をそろえてデッドロックを防ごう

二つのタスクが二つの資源を排他的に使うとき、片方はA→B、もう片方はB→Aのように逆順で取りに行くと、お互いに相手が持っている資源を待ち続ける状態になりやすいよ。これは、狭い通路で二人が向かい合って止まってしまうようなもの。防ぐには、どちらのタスクも必ずA→Bのように同じ順番で資源を取るルールにしよう。そうすると循環待ちが起きにくくなり、デッドロックを防げるんだ。

この問題で問われていること

ポイントは、優先度を上げ下げして解決する話ではなく、デッドロックが成立する条件の一つである「循環待ち」を壊すことだよ。資源を取る順番を統一して、待ちの輪ができないようにする発想を押さえよう。

Breaking Circular Wait

deadlock prevention is achieved by enforcing the same resource-acquisition order across tasks so circular wait cannot arise

deadlock needs circular wait\nfix a single acquisition order\nall tasks follow the same order\npriority changes do not solve the root cause

確認ポイント

  • 循環待ち条件を崩す。
  • 順序統一で考える。
  • 優先度調整と混同しない。
正解と解説を見る

正解

イ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

不正解だよ。片方のタスクの優先度を高くしても、すでに別々の資源を持って待ち合っていたら、優先度だけでは鍵の取り合いは解決しないよ。窓口で『この人を優先します』と言っても、必要な書類を別の人が握ったままなら進めない、という感じだね。

選択肢イ(正解)

これは正解だよ。例えば、2人が『鍵Aを取ってから鍵Bを取る』という同じルールで動けば、片方が鍵Aを持ち、もう片方が鍵Bを持って、お互いに待ち続ける状態を避けやすいよ。資源を取る順番を全員で統一すると、行き違いによるデッドロックを防げるんだ。

選択肢ウ

不正解だよ。両方のタスクで資源を取る順番をそろって逆にするだけなら、実は『同じ順番にそろえる』のと同じ効果になる場合があるよ。ただし、この選択肢の言い方だと元の順番との関係があいまいで、デッドロック対策として本質的なのは『全タスクで資源を取る順番を統一すること』なんだ。

選択肢エ

不正解だよ。両方のタスクの優先度を同じにしても、資源を取る順番がバラバラなら、片方が資源A、もう片方が資源Bを持って止まる可能性は残るよ。泥棒同士が別々の合鍵を持って『そっちの鍵を貸して』と待ち合うようなもので、優先度をそろえても待ち合い自体はなくならないんだ。

出典:独立行政法人 情報処理推進機構(IPA)令和4年度秋期 情報処理安全確保支援士試験 午前Ⅰ 問6(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針