令和6年度 春期 システムアーキテクト試験 午前Ⅱ 問24
DBMSにおいて,デッドロックを検出するために使われるデータ構造はどれか。
解答・解説
正解: エ. 待ちグラフ
DBMSにおける デッドロック とは、複数のトランザクションが互いに相手のロックしている資源の解放を待ち合い、処理が進まなくなる状態のことです。
DBMSにおいて、デッドロックを検出するために使われるデータ構造が 待ちグラフ です。
待ちグラフは、トランザクションをノード、資源の待ち状態を有向エッジとして表現したもので、グラフに 閉路 が存在するかどうかを調べることでデッドロックを検出します。
したがって、正解は「エ」です。
各選択肢の解説
- ア 資源割当表
各資源がどのトランザクションに割り当てられているかを管理する表です。資源の利用状況を把握するためのものであり、トランザクション間の循環的な待ち状態(デッドロック)を検出する目的のデータ構造ではありません。 - イ 時刻印順管理表
タイムスタンプ・オーダリング方式による排他制御において、トランザクションの開始時刻を管理するための表です。この方式ではデッドロックは発生しないため、検出のためのデータ構造ではありません。 - ウ トランザクションの優先順管理表
トランザクションの優先順位を管理する表です。優先順位を用いてデッドロックを未然に防止(回避)する手法はありますが、発生したデッドロックを検出するためのデータ構造ではありません。 - エ 待ちグラフ
正解です。トランザクション間の資源の待ち関係をグラフで表し、閉路を探索することでデッドロックを検出します。