SkillStack
テクノロジ系24 / 25問

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

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

システムアーキテクト試験 令和4年度 春期 午前II 問24の図表

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】イ

共有ロック同士は両立しますが、専有ロックは他の共有ロックや専有ロックと両立しません。また、t₁₀のcommit直前なので、T₁のロックはまだ解除されていません。

ロック要求を順に追います。t₅のT₄によるupdate(B)は、Bを共有ロックしているT₂とT₃を待つので、T₄→T₂、T₄→T₃です。t₈のT₂によるupdate(C)は、Cを共有ロックしているT₁を待つので、T₂→T₁です。t₉のT₃によるupdate(A)は、Aを共有ロックしているT₁とT₄を待つので、T₃→T₁、T₃→T₄です。

図の矢印は、b→a、b→c、a→d、c→b、c→dです。二つの資源保有者を待つbはT₄、bとdを待つcはT₃、dだけを待つaはT₂、待ち先がないdはT₁と対応します。したがってaはT₂です。

アのT₁は誤りです。T₁は図のdに対応します。ウのT₃は誤りです。T₃は図のcに対応します。エのT₄は誤りです。T₄は図のbに対応します。

【ポイント】 待ちグラフの矢印は、「待っている側→ロックを保持している側」です。 共有ロック同士は共存できますが、専有ロックへの変更時には、他トランザクションの共有ロック解除を待つ必要があります。

出典:令和4年度 春期 システムアーキテクト試験 午前II 問24
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める