応用情報 午前ラボ

学習の画面へ

デッドロックが発生する資源の組合せ

出典: 平成28年度 春期 応用情報技術者試験 午前 問28 (IPA)

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

なお,ロックは処理開始時にかけ,トランザクション終了時に解除する。

選択肢の表の列: A1,B1,A2,B2(各処理が専有ロックを要求する資源)

図

  1. ア A1: S, B1: S, A2: T, B2: T
  2. イ A1: S, B1: T, A2: T, B2: S
  3. ウ A1: T, B1: S, A2: T, B2: S
  4. エ A1: T, B1: T, A2: S, B2: S
正解と解説を見る

正解: イ

ポイント

デッドロック は、2 つのトランザクションが 互いに相手の持つ資源を待つ ときに起こります。
イの場合を順に追います。

  1. A1 が S をロック、B1 が T をロック
  2. A2 が T を要求 → B が持っているので A は待つ
  3. B2 が S を要求 → A が持っているので B も待つ

互いに待ち続けるのでデッドロックです。

「データベース」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)