IPA過去問ドリル

令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問13

テクノロジ/データベース

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

令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問13の図

出典:令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問13

正解:ウ

解説

待ちグラフでは,B→D,D→C,C→B という辺によって B,C,D の間に閉じたサイクル(デッドロック)が形成されており,これら 3 トランザクションは互いに相手のロック解放を待ち続けるため永久に処理が進みません。F は D と E の双方を待っていますが,D 側の待ちが永久に解消されないため,F も永久待ちになります。一方,E は G を待つのみであり,G は誰の解放も待っていないためいずれ処理を終えてロックを解放し,E の待ちは解消されます。A も C から待たれる側であり,A 自身は誰も待っていないためいずれ処理を終え,A に関する待ちは解消されます。したがって永久待ちとなるのは B,C,D,F です。

選択肢ごとの解説

  • 誤り。A は他のトランザクションを待っておらず,いずれ処理を終えるため永久待ちにはなりません。
  • 誤り。B,C,D は正しく永久待ちですが,D を待っている F も,D 側の待ちが永久に解消されないために永久待ちとなるため,F を含めていないこの組合せは不十分です。
  • 正しい。B,C,D は互いに待ち合うサイクルを形成して永久待ちとなり,そのサイクル上の D を待つ F も永久待ちとなります。
  • 誤り。E は G のみを待っており,G は誰も待っていないためいずれ解放されるので永久待ちにはなりません。G 自身も何も待っていないため永久待ちにはなりません。
データベーススペシャリストの過去問を演習モードで解く