応用情報技術者試験 応用情報技術者試験 平成28年度春期 午前28: トランザクションA(処理A1→処理A2の順に実行する)とトランザクションB(処理B1→処理B2の順に実行する)が,データベースの資源SとTに対し,次のように処理

応用情報技術者試験 平成28年度春期 午前
Q 2828 / 80
A(処理A1→処理A2の順に実行する)とトランザクションB(処理B1→処理B2の順に実行する)が,データベースの資源SとTに対し,次のように処理A1→処理B1→処理A2→処理B2の順でを要求する場合,デッドロックが発生する資源の組合せはどれか。 なお,ロックは処理開始時にかけ,トランザクション終了時に解除する。 図に示すトランザクションAとBの実行タイムライン
A1B1A2B2
SSTT
STTS
TSTS
TTSS
トランザクションAとトランザクションBの処理順序を示すタイムライン図
この問の正解率:68.77%(554件)

問題本文

トランザクションA(処理A1→処理A2の順に実行する)とトランザクションB(処理B1→処理B2の順に実行する)が,データベースの資源SとTに対し,次のように処理A1→処理B1→処理A2→処理B2の順で専有ロックを要求する場合,デッドロックが発生する資源の組合せはどれか。 なお,ロックは処理開始時にかけ,トランザクション終了時に解除する。 図に示すトランザクションAとBの実行タイムライン

選択肢

  • .A1:S,B1:S,A2:T,B2:T
  • .A1:S,B1:T,A2:T,B2:S
  • .A1:T,B1:S,A2:T,B2:S
  • .A1:T,B1:T,A2:S,B2:S

正解

. A1:S,B1:T,A2:T,B2:S

解説

デッドロックとは、2つのトランザクションが互いに相手の保持する資源のロック解除を待ち合い、どちらも先へ進めなくなる現象である。すべて専有ロックで、かつロックは終了時まで解除されないため、AとBが資源SとTを“互いに逆の順序”で要求し合うときにデッドロックが成立する。選択肢イは、A1でAがSを、B1でBをTをロックして保持したまま、A2でAがB保持のTを、B2でBがA保持のSを要求するため、両者が相手を待ち合って動けなくなる。

選択肢ごとの解説

  • .AはS→Tの順、BもS→Tの順と取得順序が同じ。A1でAがSをロックするとB1のSロックは待たされるだけで、Aが終了してSを解放すればBが続行できる。待ち合いが片方向のためデッドロックにならない。
  • .A1でAがS、B1でBがTをロックして保持。A2でAがB保持のTを、B2でBがA保持のSを要求し、SとTを互いに逆順で奪い合うため両者が待ち合う。これがデッドロックであり正解。
  • .AはA1・A2ともTを要求し実質Tだけ、BはB1・B2ともSを要求し実質Sだけを使う。AとBが別々の資源しか触らないので互いに待つことはなく、デッドロックは起きない。
  • .AはT→Sの順、BもT→Sの順と取得順序が同じ。A1でAがTをロックするとB1のTロックは待たされ、Aが終了してT・Sを解放した後にBが続行する。待ち合いは片方向でデッドロックにならない。

応用情報技術者試験 平成28年度春期 午前過去問一覧へ戻る・問28