2.wait-for graph 等待图法 ·等待图是一个有向图 G=(W,V),其中: W:顶点集合: (Ti T1是数据库系统中当前运行的事务1,2,,n} V:边集合:{(Ti,Tj)/Tj等待Ti,且i<◇j} DBMS根据申请和加锁情况动态维护一个等待图 。当且仅当图中出现有向图回路时,死锁发生
6 2.wait-for graph 等待图法 ⚫ 等待图是一个有向图 G=(W,V),其中: W:顶点集合: {Ti Ti是数据库系统中当前运行的事务1,2,...,n} V:边集合:{(Ti,Tj)/Tj等待Ti,且i<>j} ⚫ DBMS根据申请和加锁情况动态维护一个等待图. ⚫ 当且仅当图中出现有向图回路时,死锁发生
。可以及时检测出死锁。 每发生一次等待事件,均要维修一次等待图, 检测一次死锁,花费大,影响系统性能。 ·较合理的办法是周期性检测死锁 。根据:等待事件在一般系统中不是频繁出现 的,因循环等待而死锁,则更是小概率事件! 不必频繁检测
7 ⚫ 可以及时检测出死锁。 ⚫ 每发生一次等待事件,均要维修一次等待图, 检测一次死锁,花费大,影响系统性能。 ⚫ 较合理的办法是周期性检测死锁, ⚫ 根据:等待事件在一般系统中不是频繁出现 的,因循环等待而死锁,则更是小概率事件, 不必频繁检测