令和6年度 春期 午前Ⅱ 問24
データベース
デッドロックに関する問題
DBMS において,デッドロックを検出するために使われるデータ構造はどれか。
- ア資源割当表
- イ時刻印順管理表
- ウトランザクションの優先順管理表
- エ待ちグラフ
答えと解説を見る
✓ これが正解エ待ちグラフ
解説
デッドロックの検出には、トランザクション間の待ちグラフを使います。
デッドロックは、複数のトランザクションが互いに相手のロックの解放を待ち合い、どれも先へ進めなくなる状態です。DBMS がこれを検出するときは、トランザクションを節点とし、あるトランザクションが別のトランザクションの保持する資源を待っているときに矢印を引いた待ちグラフを作ります。このグラフに矢印がぐるりと一周する閉路ができていれば、待ち合いが循環しておりデッドロックが起きていると判断できます。検出したら、閉路の中のいずれかのトランザクションを取り消して待ちを解きます。見分ける軸は、待ちの関係そのものを表すデータ構造かどうかです。待ちグラフで閉路を探す、と覚えておくと選べます。
ほかの選択肢はなぜ違うのか
- ア資源割当表:資源割当表は、どの資源がどのトランザクションに割り当てられているかを記録するものです。割当ての状況は分かりますが、誰が誰を待っているかという関係の循環を直接表すものではありません。
- イ時刻印順管理表:時刻印の順序でトランザクションの実行やアクセスを制御するのは、ロックによる待ち合いを作らずに並行実行を管理する考え方です。待ちの循環を見つけてデッドロックを検出するための構造ではありません。
- ウトランザクションの優先順管理表:トランザクションの優先順管理表は、どのトランザクションを優先するかの順序を管理するものです。待ちを解くときに取り消す相手を選ぶ参考にはなりえますが、デッドロックの発生そのものを見つける構造ではありません。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- DBMSデータベースを管理するソフト。複数の処理が同じデータを同時に更新しても矛盾しないよう、排他制御などを行います。
出典:令和6年度 春期 システムアーキテクト試験 午前Ⅱ 問24
同じ用語が出る問題
- 令和7年度 春期 午前Ⅱ 問24:隔離性水準に関する問題(トランザクション)
- 令和6年度 春期 午前Ⅱ 問2:インプロセスデータベースの説明(DBMS)
- 令和5年度 春期 午前Ⅱ 問24:コミット処理を完了するタイミング(DBMS)
- 令和4年度 春期 午前Ⅱ 問24:共有ロックに関する問題(トランザクション)
- 令和4年度 春期 午前Ⅱ 問4:インプロセスデータベースの説明(DBMS)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)