2024年(令和6年) 秋期 データベーススペシャリスト 午前 問13

トランザクションA〜Gの待ちグラフにおいて、永久待ちの状態になっているトランザクション全てを列挙したものはどれか。 ここで、待ちグラフのX→Yは、トランザクションXはトランザクションYがロックしている資源のアンロックを待っていることを表す。

 [トランザクションA〜Gの待ちグラフ]
  

 ア  A、B、C、D  イ  B、C、D
 ウ  B、C、D、F  エ  C、D、E、F、G


答え ウ


解説
永久待ち(デッドロック)の状態とは、互いがロックしている資源をロックしようとしてしまう状態なので、待ちのグラフがループしているトランザクションB、C、Dがこれにあたります。 また、トランザクションFは永久待ち状態になる可能性のあるトランザクションDがロックしている資源をロックしようとするのでこれもまた永久待ち状態になります。


キーワード
・デッドロック

キーワードの解説
  • デッドロック(deadlock)
    複数の処理(タスク、トランザクション)で、互いに相手が専有している資源(データ)を専有(ロック)しようとして、処理が停止することです。
    処理がA、B、資源がX、Yのときに処理Aが資源Xを専有し、処理Bが資源Yを専有している状態で、処理Aが資源Yの専有待ちになり、処理Bが資源Xの専有待ちになると、処理AとBはデッドロック状態になります。

もっと、「デッドロック」について調べてみよう。

戻る 一覧へ 次へ