
トランザクション A と B が,共通の資源であるテーブル a と b を表に示すように更新するとき,デッドロックとなるのはどの時点か。ここで,表中の①〜⑧は処理の実行順序を示す。また,ロックはテーブルの更新直前にテーブル単位で行い,アンロックはトランザクション終了時に行うものとする。
エ. ⑥
2つのトランザクションが資源を逆の順序でロックし、互いの解放を待ち合うことでデッドロックが成立する時点を問う問題。順に追うと、③でAがテーブルaを更新(aをロック)、④でBがテーブルbを更新(bをロック)、⑤でAがテーブルbを更新しようとするがbはBが保持中でAは待ちに入る。さらに⑥でBがテーブルaを更新しようとするが、aはAが保持中でBも待ちに入る。この⑥で両者が相手の保持資源の解放を待ち合う状態(デッドロック)が成立する。よって正解はエ。デッドロックは“最後に相手の資源を要求した操作”で確定する点が要点である。
応用情報技術者試験 平成29年度春期 午前 の過去問一覧へ戻る・問29