在并发控制中引入两段锁协议的目的是________。A.为了解决并行执行时可能引起的死锁问题B.为了解决并行执行时可能引起的活锁问题C.为了解决交叉调度的不可串行化问题D.为了解决不同的调度导致不同的运行结果

题目

在并发控制中引入两段锁协议的目的是________。

A.为了解决并行执行时可能引起的死锁问题

B.为了解决并行执行时可能引起的活锁问题

C.为了解决交叉调度的不可串行化问题

D.为了解决不同的调度导致不同的运行结果


相似考题
更多“在并发控制中引入两段锁协议的目的是________。A.为了解决并行执行时可能引起的死锁问题B.为了解 ”相关问题
  • 第1题:

    在并发控制中引入两段锁协议的目的是______。

    A.为了解决并行执行时可能引起的死锁问题

    B.为了解决并行执行时可能引起的活锁问题

    C.为了解决交叉调度的不可串行化问题

    D.为了解决不同的调度导致不同的运行结果


    正确答案:C
    解析:两段锁协议是指所有事务必须分两个阶段:第一阶段是获得封锁,也称为扩展阶段;第二阶段是释放封锁,也称为收缩阶段。若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。

  • 第2题:

    在并发控制中引入两段锁协议的目的是( )。

    A)为了解决并行执行时可能引起的死锁问题

    B)为了解决并行执行时可能引起的活锁问题

    C)为了解决不同的调度导致不同的运行结果

    D)为了解决交叉调度的不可串行化问题


    正确答案:D

  • 第3题:

    下面说法中错误的是( ).

    A.并发事务如果不加控制,可能会破坏事务的隔离性
    B.可串行化调度是正确的调度
    C.两段锁协议能够保证可串行化调度
    D.两段锁协议能够确保不会产生死锁

    答案:D
    解析:

  • 第4题:

    在并发控制中引入两段锁协议的目的是

    A.为了解决并行执行时可能引起的死锁问题

    B.为了解决并行执行时可能引起的活锁问题

    C.为了解决交叉调度的不可串行化问题

    D.为了解决不同的调度导致不同的运行结果


    正确答案:C
    解析:两段锁协议是指所有事务必须分两个阶段:第一阶段是获得封锁,也称为扩展阶段;第二阶段是释放封锁,也称为收缩阶段。若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。

  • 第5题:

    如右图所示的调度,其中事务T1、T2仅对数据项A、B进行操作,则该调度( );

    A.满足两段锁协议、不发生死锁
    B.满足两段锁协议、会发生死锁
    C.不满足两段锁协议、不发生死锁
    D.不满足两段锁协议、会产生死锁

    答案:B
    解析:
    本题考查事务调度的知识。事务的执行由DBMS进行调度,在执行事务的过程中加入相关锁指令以控制事务满足ACID属性。常用的方式是两段锁协议(2PL),即事务的加锁和解锁分为两个阶段,第一阶段为锁增长阶段,只能加锁不能解锁,第二阶段为锁减少阶段,只能解锁不能加锁。图中的调度,事务T1对8、A两个数据项加锁中间无解锁指令,满足2PL协议;事务T2对A、B两个数据项加锁中间无解锁指令,也满足2PL协议。2PL协议不能避免死锁。图中事务T1先对数据项B加了独占锁,事务T2先对数据A加了共享锁;随后事务T2申请数据项B上的共享锁,只能等待事务T1释放B上的独占锁;事务T1申请数据项A上的独占锁,只能等待事务T2释放A上的共享锁。两个事务相互等待造成死锁。死锁的解除由DBMS来完成。需要在造成死锁的多个事务中选择一个回滚代价最小的事务进行强制回滚,并将该事务置于事务队列中稍后执行。图中事务T1对数据B己经做了修改,事务T2只是读取了数据A,相对而言,回滚事务T2代价最小。