栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

数据库

数据库

设T1,T2是两个事务如下:

T1: A : = A + 2 , B = B × 2 A:=A+2,B=Btimes2 A:=A+2,B=B×2;
T2: A : = A × 2 , B = B + 2 A:=Atimes2,B=B+2 A:=A×2,B=B+2;

设A,B的初值都为0

(1)若这两个事务容许并发执行,则有多少种可能的正确结果?请一一例举出来;
有两种可能:
T1   T2 —— A = 4 , B = 2 A=4,B=2 A=4,B=2
T2   T1 —— A = 2 , B = 4 A=2,B=4 A=2,B=4

(2)请给出一个可串行化的调度,并给出执行结果;

T1T2
SlockA
Y=Read(A)=0
Unlock A
Xlock A
A=Y+2
Write(A)
Unlock A
SlockB
Z=Read(B)=0
Unlock B
Xlock B
B=Z*2
Write(B)
Unlock B
 SlockA
 Y=Read(A)=0
 Unlock A
 Xlock A
 A=Y*2
 Write(A)
 Unlock A
 SlockB
 Z=Read(B)=0
 Unlock B
 Xlock B
 B=Z+2
 Write(B)
 Unlock B

结果: A = 4 , B = 2 A=4,B=2 A=4,B=2

(3)请给出一个非串行化的调度,并给出执行结果;

T1T2
SlockA
Y=Read(A)=0
Unlock A
Xlock A
 SlockA
A=Y+2等待
Write(A)等待
Unlock A等待
 Y=Read(A)=0
 Unlock A
 Xlock A
SlockB
等待A=Y*2
等待Write(A)
等待Unlock A
Z=Read(B)=0
Unlock B
Xlock B
 SlockB
B=Z*2等待
Write(B)等待
Unlock B等待
 Z=Read(B)=0
 Unlock B
 Xlock B
 B=Z+2
 Write(B)
 Unlock B

结果: A = 0 , B = 2 A=0,B=2 A=0,B=2

(4)若这两个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化的调度;

T1T2
SlockA
Y=Read(A)=0
Xlock A
A=Y+2
Write(A)
SlockB
Z=Read(B)=0
Xlock B
B=Z*2
Write(B)
Unlock A
Unlock A
Unlock B
Unlock B
 SlockA
 Y=Read(A)=0
 Xlock A
 A=Y*2
 Write(A)
 SlockB
 Z=Read(B)=0
 Xlock B
 B=Z+2
 Write(B)
 Unlock A
 Unlock A
 Unlock B
 Unlock B

(5)若这两个事务都遵守两段锁协议,请给出一个产生死锁的可串行化的调度;

T1T2
SlockA
 SlockA
Xlock A
等待
等待Xlock A
等待等待
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/335825.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号