平成26年度 秋期 午前Ⅱ 問21
データベース
デッドロックが発生しているもの
トランザクションA~Dに関する待ちグラフのうち,デッドロックが発生しているものはどれか。ここで,待ちグラフの矢印は,X→Yのとき,トランザクションXはトランザクションYがロックしている資源のアンロックを待っていることを表す。
- ア(原典は図。待ちグラフの矢印は B→A,D→A,D→C,C→B)
- イ(原典は図。待ちグラフの矢印は B→A,A→C,A→D,C→B,C→D)
- ウ(原典は図。待ちグラフの矢印は A→B,A→C,A→D)
- エ(原典は図。待ちグラフの矢印は A→C,B→C,D→C)
答えと解説を見る
✓ これが正解イ(原典は図。待ちグラフの矢印は B→A,A→C,A→D,C→B,C→D)
解説
待ちの矢印がひと回りして元に戻る閉路があるグラフが、デッドロックです。
デッドロックは、複数のトランザクションが互いに相手のロックの解除を待ち合い、どれも先へ進めなくなる状態です。待ちグラフでは、矢印をたどっていくと出発したトランザクションに戻ってくる輪、つまり閉路があるときにデッドロックが発生しています。B→A、A→C、A→D、C→B、C→Dの矢印をもつグラフでは、AはCを待ち、CはBを待ち、BはAを待っているので、A→C→B→Aという閉路ができています。三つのトランザクションのどれもが他の解放を待ち続けるので、外から手を打たない限り処理は進みません。待ちグラフの問題では、矢印を順にたどって元の場所へ戻れるかどうかだけを確かめればよい、と覚えておくと素早く判断できます。
ほかの選択肢はなぜ違うのか
- ア(原典は図。待ちグラフの矢印は B→A,…:矢印がB→A、D→A、D→C、C→Bのグラフでは、Aから出る矢印が無く、Aはだれも待っていません。Aが処理を終えてロックを解放すればBが進み、次いでC、最後にDも進めるので、閉路は無くデッドロックではありません。
- ウ(原典は図。待ちグラフの矢印は A→B,…:矢印がA→B、A→C、A→Dのグラフでは、AがB、C、Dの三つを待っているだけで、B、C、Dはだれも待っていません。それぞれが処理を終えてロックを解放すればAも進めるので、デッドロックではありません。
- エ(原典は図。待ちグラフの矢印は A→C,…:矢印がA→C、B→C、D→Cのグラフでは、A、B、DがそろってCを待っていますが、Cはだれも待っていません。Cが処理を終えてロックを解放すれば他も進めるので、閉路は無く、デッドロックではありません。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:平成26年度 秋期 ITサービスマネージャ試験 午前Ⅱ 問21
同じ用語が出る問題
- 令和7年度 春期 午前Ⅱ 問23(トランザクション)
- 令和5年度 春期 午前Ⅱ 問23:トランザクションに関する問題(トランザクション)
- 令和4年度 春期 午前Ⅱ 問23:2相コミットプロトコルの問題(トランザクション)
- 令和3年度 春期 午前Ⅱ 問23:ロールフォワードに関する問題(トランザクション)
- 令和元年度 秋期 午前Ⅱ 問21:変更消失に関する問題(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)