事务调度冲突可串行化分析及两阶段封锁协议下的死锁问题
(1) 该调度是冲突可串行化的。可以将其等价转化为串行调度:
T1: R1(A); R1(C); W1(C);
T2: W2(B); W2(A);
T3: R3(C); R3(B);
其中,T1、T2、T3的操作按照事务编号依次执行,与原调度具有相同的读写关系,因此与原调度等价。
(2) 在两阶段封锁协议下,该调度会发生死锁。具体来说,T1在执行W1(C)时持有了C上的写锁,T3在执行R3(C)时持有了C上的读锁,T2在执行W2(A)时需要获得A上的写锁,但此时A已被T1持有,因此T2被阻塞。而T1在执行W1(C)后需要获得B上的写锁,但此时B已被T2持有,因此T1也被阻塞。因此,T1、T2之间和T2、T3之间形成了死锁。
原文地址: http://www.cveoy.top/t/topic/n0RP 著作权归作者所有。请勿转载和采集!