SAシステムアーキテクト試験 午前Ⅱ

令和4年度春期 システムアーキテクト 午前Ⅱ 問24

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

問題

t₁~t₁₀の時刻でスケジュールされたトランザクションT₁~T₄がある。時刻t₁₀でT₁がcommitを発行する直前の,トランザクションの待ちグラフを作成した。aに当てはまるトランザクションはどれか。ここで,select(X)は共有ロックを掛けて資源Xを参照することを表し,update(X)は専有ロックを掛けて資源Xを更新することを表す。これらのロックは,commitされた時にアンロックされるものとする。また,トランザクションの待ちグラフの矢印は,Tᵢ→Tⱼとしたとき,Tⱼがロックしている資源のアンロックを,Tᵢが待つことを表す。
時刻t₁~t₁₀におけるトランザクションT₁~T₄のselect,update,commitのスケジュール表。
時刻t₁~t₁₀におけるトランザクションT₁~T₄のselect,update,commitのスケジュール表。
節点a,b,c,dからなる待ちグラフ。bからa,aからd,bからc,cからb,cからdへ矢印がある。
節点a,b,c,dからなる待ちグラフ。bからa,aからd,bからc,cからb,cからdへ矢印がある。

選択肢

  1. ア
    T₁
  2. イ
    T₂
  3. ウ
    T₃
  4. エ
    T₄
解き方のヒントを見る

同時実行とロック競合の見方

複数の処理が同じデータへ関わる場面では、操作の順序、保持される資源、待機や中断の条件を切り分け、各時点で何が観測可能かを整理して考えます。

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

選択肢を比べる前に、処理同士の関係を時系列で並べ、どの操作がどの資源に影響し、他の処理へどんな制約を生むかという観点に集中します。

視点

同時実行では、個々の操作だけでなく、処理の重なり方と共有対象への関与を対応づけて確認します。順番、待機、解放、観測の変化を混同せず、根拠を時系列に置くことが大切です。

確認ポイント

  • 処理ごとの操作を時系列に並べ、重なる区間を確認する
  • 共有対象ごとに、どの処理が関与しているかを整理する
  • 待機・継続・中断が起きる条件を前後関係から確認する
正解と解説を見る

正解

イ

解説

各時刻の処理からロック保持者と待機者を整理すると、t5、t8、t9で待ち関係が生じます。これらの関係を待ちグラフの矢印の向きと照合すると、aはT2に対応します。

理由

t5ではT4がBを専有ロックで更新しようとするため、Bを共有ロックしているT2とT3のアンロックを待ちます。t8ではT2がCの専有ロックを要求し、Cを共有ロックしているT1を待ちます。t9ではT3がAを更新するため、Aを保持するT1とT4を待ちます。

比較

したがって、矢印はT4からT2・T3、T2からT1、T3からT1・T4へ向かいます。この接続関係を図の形と照合すると、aはT2に一致し、正しい選択肢はイです。

選択肢ア

これは不正解だよ。T1はAとCを共有ロックしていますが、自身が別のトランザクションのロック解放を待つ処理はありません。そのため、待ちグラフではT1に対応するノードは待機先を持たない位置になり、aの矢印関係とは一致しません。

選択肢イ(正解)

これは正解だよ。T2はBを共有ロックした後、Cの専有ロックを要求します。Cを共有ロックしているT1のアンロックを待つため、T2からT1への矢印が生じます。さらにT2はBを共有ロックしており、T4の更新要求にも関係するため、図のaに対応します。

選択肢ウ

これは不正解だよ。T3はBを共有ロックした後、Aの専有ロックを要求します。Aを保持するT1とT4を待つため、T3は複数の待ち先を持つノードになりますが、図のaが表す接続関係とは異なります。

選択肢エ

これは不正解だよ。T4はAを共有ロックした後、Bの専有ロックを要求します。Bを共有ロックしているT2とT3を待つため、T4から複数のノードへ矢印が出ます。この構造は図のaではなく、別のノードに対応します。

学習のポイント

共有ロックと専有ロックの競合、および待ちグラフの矢印の向きを正確に対応付ける問題です。

出典:独立行政法人 情報処理推進機構(IPA)令和4年度春期 システムアーキテクト試験 午前Ⅱ 問24(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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