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

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

解説

応用情報技術者試験 平成29年度春期 午前 問29「トランザクション A と B が,共通の資源であるテーブル a と b を表に示…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約46%です。

正解

エ. ⑥

正答率 45.5%(1,039人中 473人が正解)

問題の解説

ロックは更新の直前にかけ、解除はトランザクション終了時なので、一度かけたロックは終了まで保持される。③で A が a を、④で B が b をロックした後、⑤で A は B が持つ b のロック解除を待ち、⑥で B は A が持つ a のロック解除を待つ。互いに相手を待つ循環待ちが成立する⑥の時点で、デッドロックになる。

選択肢ごとの解説

  • ア③では A が a をロックするだけである。a は誰もロックしておらず、待ちは生じない。
  • イ④では B が b をロックするだけである。b は誰もロックしておらず、待ちは生じない。
  • ウ⑤では A が b を更新しようとして、B が持つ b のロックの解除を待つ。ただし B はこの時点で待っておらず、処理を進めて終了すれば b のロックは解除されるので、デッドロックにはなっていない。
  • エ正しい。⑥で B が a を更新しようとすると、A が持つ a のロックの解除を待つことになる。A も B が持つ b のロックを待っているので、互いに待ち続けるデッドロックになる。

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

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

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

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