応用情報技術者試験 応用情報技術者試験 平成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件)

解説

応用情報技術者試験 平成28年度春期 午前 問28「トランザクションA(処理A1→処理A2の順に実行する)とトランザクションB(処理…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約69%です。

正解

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

正答率 68.8%(554人中 381人が正解)

問題の解説

デッドロックは、二つのトランザクションが、相手が専有ロックを保持している資源を互いに待ち合って進めなくなる状態である。A が取った資源を B が後で要求し、B が取った別の資源を A が後で要求する、という交差した順序で起こる。A1 が S、B1 が T、A2 が T、B2 が S の場合、A は S を保持して T を待ち、B は T を保持して S を待つので、デッドロックになる。

選択肢ごとの解説

  • アB1 は A が保持する S を待つだけで、A は T を取って最後まで進み、COMMIT で S を解除する。待ち合いの輪ができないので、デッドロックにならない。
  • イ正しい。A は S を保持して T を要求し、B は T を保持して S を要求するので、互いに待ち合ってデッドロックになる。
  • ウA は T を、B は S を取った後、それぞれ自分が取った資源を再び使うだけで、互いを待たない。デッドロックにならない。
  • エB1 は A が保持する T を待つだけで、A は S を取って最後まで進める。A が終われば B も進めるので、デッドロックにならない。

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

応用情報技術者試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

応用情報技術者試験 合格.dev を App Store でダウンロード