若系统中存在n个等待事务Ti(i=0,1,2,…,n-1),其中:T0正等待被T1锁住的数据项A1,T1正等待被T2锁住的数据项A2,…,Ti正等待被Ti+1锁住的数据项Ai+1,…,Tn-1正等待被T0锁住的数据项A0,则系统处于___________状

admin2016-11-11  62

问题 若系统中存在n个等待事务Ti(i=0,1,2,…,n-1),其中:T0正等待被T1锁住的数据项A1,T1正等待被T2锁住的数据项A2,…,Ti正等待被Ti+1锁住的数据项Ai+1,…,Tn-1正等待被T0锁住的数据项A0,则系统处于___________状态。

选项 A、封锁
B、死锁
C、循环
D、并发处理

答案B

解析 本题考查关系数据库事务处理方面的基础知识。
    与操作系统一样,封锁的方法可能引起活锁和死锁。例如事务T1封锁了数据R,事务T2请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当T3释放R上的封锁后系统又批准了T4的请求,……。T2有可能长期等待,这就是活锁。避免活锁的简单方法是采用先来先服务的策略。即让封锁子系统按请求封锁的先后次序对事务排队。数据尺上的锁一旦释放就批准申请队列中的第一个事务获得锁。
    又如事务T1封锁了数据R1,T2封锁了数据R2,T3封锁了数据R3。然后T1又请求封锁R2,T2请求封锁R3,T3请求封锁R1。于是出现T1等待T2释放R2上的封锁,T2等待T3释放R3上的封锁,T3等待T1释放R1上的封锁。这就使得三个事务永远不能结束。即多个事务都请求封锁别的事务已封锁的数据,导致无法运行下去的现象称为死锁。
转载请注明原文地址:https://jikaoti.com/ti/D167FFFM
0

最新回复(0)