平成19年春期試験問題 午前問67
問67解説へ
トランザクションAとBが,共通の資源であるテーブルaとbを表のように更新するとき,デッドロックとなるのはどの時点か。ここで,表中の①~⑧は処理の実行順序を示す。また,ロックはテーブルの更新直前に行い,アンロックはトランザクションの終了後に行うものとする。
- ③
- ④
- ⑤
- ⑥
正解 エ問題へ
広告
解説
デッドロックは、共有資源を使用する2つ以上のプロセスが、互いに相手プロセスの必要とする資源を排他的に使用していて、互いのプロセスが相手が使用している資源の解放を待っている状態に陥ってしまうことをいいます。
テーブルのロックに着目して処理を流れを見ていきましょう。
テーブルのロックに着目して処理を流れを見ていきましょう。
- ③でトランザクションAがテーブルaをロックする。
- ④でトランザクションBがテーブルbをロックする。
- ⑤でトランザクションAがテーブルbをロックしようとするが、既にトランザクションBにロックされているのでトランザクションAは待ち状態となる。
- ⑥でトランザクションBがテーブルaをロックしようとするが、既にトランザクションAにロックされているのでトランザクションBは待ち状態となる。
広告