トランザクション処理 (全65問中56問目)
No.56
トランザクションAとBが,共通の資源であるテーブルaとbを表のように更新するとき,デッドロックとなるのはどの時点か。ここで,表中の①~⑧は処理の実行順序を示す。また,ロックはテーブルの更新直前に行い,アンロックはトランザクションの終了後に行うものとする。
出典:平成19年春期 問67
- ③
- ④
- ⑤
- ⑥
- [出題歴]
- 応用情報技術者 H29春期 問29
分類
テクノロジ系 » データベース » トランザクション処理
正解
エ
解説
デッドロックは、共有資源を使用する2つ以上のプロセスが、互いに相手プロセスの必要とする資源を排他的に使用していて、互いのプロセスが相手が使用している資源の解放を待っている状態に陥ってしまうことをいいます。
テーブルのロックに着目して処理を流れを見ていきましょう。
テーブルのロックに着目して処理を流れを見ていきましょう。
- ③でトランザクションAがテーブルaをロックする。
- ④でトランザクションBがテーブルbをロックする。
- ⑤でトランザクションAがテーブルbをロックしようとするが、既にトランザクションBにロックされているのでトランザクションAは待ち状態となる。
- ⑥でトランザクションBがテーブルaをロックしようとするが、既にトランザクションAにロックされているのでトランザクションBは待ち状態となる。