考虑以下两个事务:T 1和T 2 。
下列哪种使用共享锁和排他锁的方案可以满足上述事务的严格两阶段锁定的要求?
(A) A
(B) B
(C) C
(D) D答案: (C)
解释:
共享锁用于读取,排他锁用于写入数据。一个排他锁不能采用其他时间表已采用的其他排他锁,因为这将导致死锁。遵循严格2PL的要求:
1.提交后应释放排他锁(提交后释放排他锁会限制死锁条件。即,如果已经使用排他锁,我们将无法获得项目锁。
2.第一次解锁后不能进行锁定,反之亦然。
选项(A):不正确,因为写B,S1需要对B的排他锁,写A,S2需要对A的排他锁。这就是错误的原因。
选项(B):不正确,因为一个互斥锁无法获取其他人的互斥锁。在这里,S1对项目A进行了独占锁定,S2对项目B进行了独占锁定,因此现在S1无法对项目B进行独占锁定,而S2对项目A不能进行独占锁定。这就是错误的原因。
选项(C):正确,因为它遵循严格2PL的所有三个要求。在此,计划S1在提交后释放对B的排他锁,而计划S2在提交后释放对A的排他锁。(满足条件1)
选项(D):根据条件1,不正确,应在提交后释放独占锁。在这里,计划S1在提交之前释放对B的排他锁,而计划S2在提交之前释放对A的排他锁。因此,这是不正确的。
此解决方案由Nitika Bansal提供。
这个问题的测验