有以下几种可能性:
T1 T2 T3 :16
T1 T3 T2: 8
T2 T1 T3: 4
T2 T3 T1 : 2
T3 T1 T2 : 4
T3 T2 T1 : 2
(2)
最后结果A为16
(3)
最后结果A为0,是非可串行化的调度。
(4)
(5)10.
是冲突可串行化的调度。
Scl=r3(B) r1(A) w3(B) r2(B) r2(A) w2(B) r1(B) w1(A)
交换r1(A)和w3(B):
r3(B) w3(B) r1(A) r2(B) r2(A) w2(B) r1(B) w1(A)
再交换r1(A)和r2(B) r2(A) w2(B):
Sc2=r3(B) w3(B) r2(B) r2(A) w2(B) r1(A) r1(B) w1(A)
由于Sc2是串行的,而且两次交换都是基于不冲突操作的,得到
Sc1=r3(B) r1(A) w3(B) r2(B) r2(A) w2(B) r1(B) w1(A)是冲突可串行化的调度。
14.(1)改写T1和T2,增加加锁操作和解锁操作, 并要求遵循两阶段封锁协议。
T1:
Slock A; R(A); Slock B; R(B); B=A+B; Xlock B;W(B); Unlock A; Unlock B;
T2:
Slock B; R(B); Slock A; R(A); A=A+B; Xlock A;W(A); Unlock B; Unlock A;
(2)说明T1和T2的执行是否会引起死锁,给出T1和T2的一个调度并说明之。
版权声明:本文为weixin_45887276原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。