数据库作业21:第十一章: 并发控制课后习题 您所在的位置:网站首页 概论第11章测试题及参考答案解析 数据库作业21:第十一章: 并发控制课后习题

数据库作业21:第十一章: 并发控制课后习题

2024-07-13 13:17| 来源: 网络整理| 查看: 265

9、设T1、T2、T3是如下三个事物,设A的初值为0. T1:A:=A+2; T2:A:=A*2; T3:A:=A**2;(即A ← \leftarrow ← A 2 A^2 A2) (1)若这三个事物允许并发执行,则有多少种可能的正确结果?请一一列举出来。 可能会产生的结果有:2、4、8、16 T1T2T3 16 T1T3T2 8 T2T1T3 4 T2T3T1 2 T3T1T2 4 T3T2T1 2 (2)请给出一个可串行化的调度,并给出执行结果。csdn MarkDown 绘制表格 结果为:16

T1T2T3Slock AY=R(A)=0Unlock AXlock ASlock AA=Y+2等待W(A)等待Unlock A等待Y=R(A)=2Unlock AXlock ASlock AA=Y*2等待W(A)等待Unlock A等待Y=R(A)=4Unlock AXlock AA=Y**2W(A)Unlock A

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

T1T23Slock AY=R(A)=0Slock A等待Unlock AY=R(A)=0Unlock AXlock AA=Y*2Slock AW(A)等待Unlock A等待Y=R(A)=0Unlock AXlock AA=Y+2Xlock AW(A)等待Unlock A等待A=Y**2W(A)Unlock A(4)若这三个事物都遵守两段锁协议,请给出一个不产生死锁的可串行化调度。T1T2T3---Slock AY=R(A)=0Xlock AA=Y+2Slock AW(A)等待Unlock A等待Y=R(A)=2Xlock AUnlock A等待Slock AA=Y*2等待W(A)等待Unlock A等待Y=R(A)=4Unlock AXlock AA=Y**2W(A)Unlock AUnlock A

(5)若这三个事物都遵守两段锁协议,请给出一个产生死锁的调度。

T1T2T3Slock AY=R(A)=0Slock AY=R(A)=0Xlock A等待Xlock A等待Slock AY=R(A)=0Xlock A等待

10、今有三个事物的一个调度r3(B)r1(A)w3(B)r2(B)r2(A)w2(B)r1(B)w1(A),该调度是冲突可串行化的调度吗?为什么? 是冲突可串行化的调度,冲突操作是指不同事物对同一数据的读写操作和写写操作。 不同事物的读写或写写操作之间可以交换位置,同种事物的读读操作之间也可以交换位置,所以交换位置之后为:r3(B)w3(B)r2(B)r2(A)w2(B)r1(A)r1(B)w1(A),等价于一个串行调度T3T2T1,所以是冲突可串行化的调度。

14、考虑T1和T2两个事物。 T1:R(A);R(B);B=A+B;W(B) T2:R(B);R(A);A=A+B;W(A) (1)改写T1和T2,增加加锁操作和解锁操作,并要求遵循两阶段封锁协议。

T1T2Slock AX=R(A)Slock BY=R(B)Xlock BB=X+YW(B)Unlock BSlock BX=R(B)Unlock BUnlock ASlock AY=R(A)XlockAA=X+YW(A)Unlock AUnlock AUnlock B(2)说明T1和T2的执行是否会引起死锁,给出T1和T2的一个调度并说明之。可能会引起死锁。下面的调度应该会引起死锁。T1T2--Slock AX=R(A)Slock BY=R(B)Slock BY=R(B)Xlock B等待Slock A等待X=R(A)等待Xlock A等待


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有