数据库作业21:第十一章: 并发控制
9、
(1)
T1 T2 T3 A=16
T1 T3 T2 A=8
T2 T1 T3 A=4
T2 T3 T1 A=2
T3 T1 T2 A=4
T3 T2 T1 A=2
(2)
T1 | T2 | T3 |
---|---|---|
R(A)=0 | ||
R(A)=0 | ||
A=A+2 | ||
A=A*2 | ||
W(A)=2 | ||
R(A)=2 | ||
W(A)=0 | ||
A=A**2 | ||
W(A)=4 |
A=4
(3)
T1 | T2 | T3 |
---|---|---|
R(A)=0 | ||
R(A)=0 | ||
R(A)=0 | ||
A=A+2 | ||
A=A*2 | ||
W(A)=2 | ||
W(A)=0 | ||
A=A**2 | ||
W(A)=0 |
A=0
(4)
T1 | T2 | T3 |
---|---|---|
Xlock A | ||
R(A)=0 | ||
Xlock A | ||
A=A+2 | 等待 | |
W(A)=2 | 等待 | |
Unlock A | 等待 | |
R(A)=2 | ||
A=A*2 | ||
Xlock A | ||
W(A)=4 | 等待 | |
Unlock A | 等待 | |
R(A)=4 | ||
A=A**2 | ||
W(A)=16 | ||
Unlock A |
(5)
T1 | T2 | T3 |
---|---|---|
Slock A | ||
R(A)=0 | ||
Slock A | ||
A=A+2 | ||
Xlock A | ||
等待 | A=A*2 | |
等待 | Xlock A | |
等待 | 等待 | Xlock A |
等待 | 等待 | 等待 |
等待 | 等待 | 等待 |
10、
冲突操作:
r(B)与 w(B)
w(B)与 r(B)
w(B) 与 w(B)
w(B) 与 r(B)
r(A) 与 w(A)
w(B) 与 r(B)
调度= r(B) w(B) r(B) r(A) w(B) r(A) r(B) w(A)
等价于串行调度T3、T2、T1,是冲突可串行化调度。
14、
(1)
T1 | T2 |
---|---|
Slock A | Xlock A |
Xlock B | Slock B |
R(A) | R(B) |
R(B) | R(A) |
B=A+B | A=A+B |
W(B) | W(A) |
Unlock A | Unlock A |
Unlock B | Unlock B |
(2)不会引起死锁
T1 | T2 |
---|---|
Xlock A | |
Slock A | |
等待 | Slock B |
等待 | R(B) |
等待 | R(A) |
等待 | A=A+B |
等待 | W(A) |
等待 | Unlock A |
Xlock B | |
等待 | Unlock B |
R(A) | |
R(B) | |
B=A+B | |
W(B) | |
Unlock A | |
Unlock B |