SAシステムアーキテクト試験 午前Ⅰ
令和6年度春期 システムアーキテクト 午前Ⅰ 問6
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題

選択肢
- アB、 C、 D
- イC、 D
- ウC だけ
- エD だけ
解き方のヒントを見る
与えられた条件と仮定を区別する
並行プロセスと資源の関係を考えるときは、与えられた条件と、自分が補っている仮定を分けることに集中しましょう。普段の知識や経験から条件を足していないか、判断の根拠を丁寧に確かめてください。
この問題で問われていること
この問題では、判断に使おうとしている前提が、与えられた条件に基づいているかを意識してください。明示された内容と自分の想定を区別し、根拠を確認できない想定を事実として扱っていないか振り返りましょう。
視点
判断の前提を整理するときは、明示された条件と、自分が補った解釈を分けて捉えます。分野の知識を思い出した際も、その知識を使うための前提が今回の条件で確認できるかを意識しましょう。
確認ポイント
- 判断に使う前提の根拠を確認できるか
- 明示された条件と自分の想定を分けているか
- 知識や経験から条件を付け足していないか
正解と解説を見る
正解
イ
解説
正解はイ(C、 D)です。公式表の取得順序はAとBがX→Y→Z、CがZ→X→Y、DがZ→Y→Xです。AとC、AとDでは、それぞれ互いの保持資源を待つ循環が成立する可能性があります。
理由
Cとの実行では、AがXとYを取得し、CがZを取得した場面を考えます。Aは次のZを待ち、Cは次のXを待つので循環待ちになります。Dとの実行では、AがXを取得し、DがZ、続いてYを取得した場面を考えます。AはYを待ち、DはXを待つので、こちらも循環待ちになります。どちらも実行終了まで資源を解放しないため、互いに処理を進められません。
比較
AとBは、ともにX→Y→Zの順に資源を取得します。先にXを取得したプロセスが処理を進め、他方は最初のXを取得できずに待ちます。待つ側はYやZを保持していないので、先行する側は残りの資源を取得して終了できます。この二つのプロセス間には循環待ちが生じません。したがって、該当する組合せはCとDです。
選択肢ア
これは不正解だよ。Bを含めている点が誤りです。AとBはいずれもX→Y→Zの順に資源を占有します。先にXを取得した側が残りの資源を取得して終了でき、他方はXを待つので、相互に待つ循環は生じません。CとDには循環待ちになる実行順序があります。
選択肢イ(正解)
これは正解だよ。CはZ→X→Y、DはZ→Y→Xの順に占有します。Cの場合、AがX・Yを保持してZを待ち、CがZを保持してXを待つと、互いに進めません。Dの場合も、AがXを保持してYを待ち、DがZ・Yを保持してXを待つと、循環待ちが成立します。
選択肢ウ
これは不正解だよ。Cだけでは、Dにもデッドロックの可能性があることを見落としています。AがXを取得し、DがZ、次にYを取得すると、AはYを待ち、DはXを待ちます。占有中の資源は実行終了まで解放されないため、両者とも進めなくなります。
選択肢エ
これは不正解だよ。Dだけでは、Cにもデッドロックの可能性があることを見落としています。Cの占有順序はZ→X→Yです。AがX・Yを保持し、CがZを保持すると、AはZを待ち、CはXを待ちます。互いに相手の資源が解放されるのを待つため、処理が停止します。
学習のポイント
表の数値を取得順へ読み替え、保持資源と待ち資源から循環待ちを判定する練習をしましょう。
出典:独立行政法人 情報処理推進機構(IPA)令和6年度春期 システムアーキテクト試験 午前Ⅰ 問6(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針