A-A+

若系统中存在一个等待事务集(T0 T1 T2 … Tn) 其中T0正等待被T1锁住的数据项A

2022-08-06 06:41:10 问答库 阅读 177 次

问题详情

若系统中存在一个等待事务集(T0,T1,T2,…,Tn),其中T0正等待被T1锁住的数据项A1,T1正等待被T2锁住的数据项A2,…,Tn-1正等待被Tn锁住的数据项An,Tn正等待被T0锁住的数据项A0,则系统处于(31)的工作状态。
A.并发处理
B.封锁
C.循环
D.死锁请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:D
解析:与操作系统中的进程调度类似,在数据库系统中,若系统中存在一个等待事务集(T0,T1,T2,…,Tn),其中T0正等待被T1锁住的数据项A1,T1正等待被T2锁住的数据项A2,…,Tn-1正等待被Tn锁住的数据项An,Tn正等待被T0锁住的数据项A0,则系统处于死锁的工作状态。在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求对已为其他事务封锁的数据对象加锁,从而出现死等待。预防死锁的方法通常有一次封锁法(每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行)和顺序封锁法(预先对数据对象规定一个封锁顺序,所有事务都按这个顺序进行封锁),死锁的诊断方法一般有超时法和等待图法。

考点:数据项,存在