応用情報技術者試験 応用情報技術者試験 平成29年度春期 午前29: トランザクション A と B が,共通の資源であるテーブル a と b を表に示すように更新するとき,デッドロックとなるのはどの時点か。ここで,表中の①〜⑧は処

応用情報技術者試験 平成29年度春期 午前
Q 2929 / 80
A と B が,共通の資源であるテーブル a と b を表に示すように更新するとき,デッドロックとなるのはどの時点か。ここで,表中の①〜⑧は処理の実行順序を示す。また,ロックはテーブルの更新直前にテーブル単位で行い,アンロックはトランザクション終了時に行うものとする。
トランザクションAとBの処理順序表(①〜⑧の順にトランザクション開始・テーブルa/b更新・トランザクション終了が並ぶ時系列図)
この問の正解率:45.57%(1,038件)

問題本文

トランザクション A と B が,共通の資源であるテーブル a と b を表に示すように更新するとき,デッドロックとなるのはどの時点か。ここで,表中の①〜⑧は処理の実行順序を示す。また,ロックはテーブルの更新直前にテーブル単位で行い,アンロックはトランザクション終了時に行うものとする。

選択肢

  • .
  • .
  • .
  • .

正解

.

解説

2つのトランザクションが資源を逆の順序でロックし、互いの解放を待ち合うことでデッドロックが成立する時点を問う問題。順に追うと、③でAがテーブルaを更新(aをロック)、④でBがテーブルbを更新(bをロック)、⑤でAがテーブルbを更新しようとするがbはBが保持中でAは待ちに入る。さらに⑥でBがテーブルaを更新しようとするが、aはAが保持中でBも待ちに入る。この⑥で両者が相手の保持資源の解放を待ち合う状態(デッドロック)が成立する。よって正解はエ。デッドロックは“最後に相手の資源を要求した操作”で確定する点が要点である。

選択肢ごとの解説

  • .③はAがテーブルaをロックしただけで、まだ待ち合いは発生していない。デッドロックではない。
  • .④はBがテーブルbをロックした段階で、互いの待ちは生じていない。デッドロックではない。
  • .⑤はAがb獲得を待ち始めた段階だが、この時点ではBはまだ待っておらず一方向の待ちにすぎない。デッドロックは未成立。
  • .正しい。⑥でBがAの保持するaを待ち始め、双方が相手の資源解放を待ち合う循環待機が成立してデッドロックとなる。

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