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

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

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

問題

三つの資源 X 一Z を占有して処理を行う四つのプロセス A 一 D がある。各プロセスは処理の進行に伴い、 表中の数値の順に資源を占有し、 実行終了時に三つの資源を一括して解放する。 プロセス A と同時にもう一つプロセスを動かした場合に、 デッドロックを起こす可能性があるプロセスはどれか。

選択肢

  1. ア
    B、 C、D
  2. イ
    C.D
  3. ウ
    Cだけ
  4. エ
    Dだけ
解き方のヒントを見る

午前I 問06

Aは資源を`X→Y→Z`の順に取りに行くよ。Cは`Y→Z→X`、Dは`Z→Y→X`の順だから、Aと同時に動くと「こっちはY待ち、あっちはX待ち」みたいに、お互いが相手の持っている資源を待つ循環待ちが起きる可能性があるんだ。一方、BはAと同じ順番で資源を取るので、列に並ぶ順番がそろっていて、循環待ちは起きにくいよ。

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

資源を取る順番を見て、デッドロックの原因になる循環待ちが起きそうかを見抜こう、という問題だよ。

Deadlock Risk by Resource Order

different lock order can create circular wait; same order usually does not

A: X -> Y -> Z\nB: X -> Y -> Z\nC: Y -> Z -> X\nD: Z -> Y -> X

確認ポイント

  • B は A と同順です。
  • 循環待ちを作る順序だけを選ぶ。
  • A と組み合わせて危ないのは C、 D です。
正解と解説を見る

正解

イ

出典

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

選択肢ア

これは不正解だよ。BはAと同じX→Y→Zの順に資源を取るので、入口で同じ列に並ぶようなものなんだ。どちらかが先にXを取ったら、もう片方はXの前で待つだけで、途中の鍵を持ったまま相手を待つ形になりにくいよ。Bまで含めてしまうのが間違いだよ。

選択肢イ(正解)

これが正解だよ。AはX→Y→Zの順、CはZ→X→Yの順、DはZ→Y→Xの順に資源を取る。たとえばAがXを持ち、CがZを持つと、AはZ待ち、CはX待ちになって、お互いに相手が手放すのを待つだけになることがあるよ。Dも同じように、Aと逆向きに鍵を取りに行くので行き詰まる可能性がある。だからデッドロックの可能性があるのはCとDだよ。

選択肢ウ

これは不正解だよ。Cはたしかにデッドロックの可能性があるけど、Dも同じく危ないんだ。AはX→Y→Zの順に鍵を取る人、DはZ→Y→Xの順に鍵を取る人みたいなもの。AがXを持ってYを待ち、DがYを持ってXを待つと、お互いに『相手の鍵がないと進めない』状態になるよ。だからCだけでは足りないよ。

選択肢エ

これは不正解だよ。Dはたしかにデッドロックの可能性があるけど、Cも危ないんだ。CはZ→X→Yの順に資源を取るので、AがXを持ってZを待ち、CがZを持ってXを待つ、という『お互いの持ち物待ち』が起こり得るよ。だからDだけではなく、Cも含める必要があるよ。

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

関連する過去問一覧

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