DBMSにおけるデッドロック検出と待ちグラフ(有向グラフ)
正解は「エ」です。 デッドロック(deadlock)とは、複数のトランザクションが互いに相手のロック解放を待ち合ってしまい、処理が永久に進まなくなる状態です。 DBMSがデッドロックを検出するために用いる代表的なデータ構造が「待ちグラフ(wait-for graph)」です。 トランザクションを頂点(ノード)とし、あるトランザクションが別のトランザクションの保持するロックを待っている関係を有向辺(矢印)で表現します。 待ちグラフ内に有向閉路(サイクル: 巡回経路)が存在するかどうかを周期的に探索し、サイクルが検出された場合にデッドロックが発生していると判定します。 デッドロックが検出された場合、DBMSはサイクル内のいずれかのトランザクション(犠牲者: victim)を強制的にロールバック(アボート)して解消します。 資源割当表(資源割当グラフ)はオペレーティングシステムの資源管理等で用いられますが、DBMSのデッドロック検出にはトランザクション間の待ち関係を表す待ちグラフが直接用いられます。 時刻印(タイムスタンプ)順管理は、タイムスタンプ順序付け法(同時実行制御方式の一つ)において直列化可能性を保証するために用いられます。 トランザクションの優先順管理表は、スケジューリングや優先度制御に用いられるデータ構造であり、デッドロック検出の構造ではありません。
デッドロック
排他制御
トランザクション管理
DBMSにおいて,デッドロックを検出するために使われるデータ構造はどれか。
出典
平成30年春期 午前Ⅱ
ア
資源割当表
イ
時刻印順管理表
ウ
トランザクションの優先順管理表
エ
待ちグラフ
【正解・解説】DBMSにおけるデッドロック検出と待ちグラフ(有向グラフ)|平成30年春 午前Ⅱ | IT資格ラボ