📜  门| GATE-CS-2016(套装1)|第 61 题

📅  最后修改于: 2021-09-27 05:27:32             🧑  作者: Mango

考虑以下两相锁定协议。假设事务 T 访问(用于读或写操作)一组特定的对象 {O1,…,Ok}。这是通过以下方式完成的:

第 1 步。 T 获得对 O1 的排他锁,。 . . , 确定按地址递增的顺序。
第 2 步。执行所需的操作。
第 3 步。所有的锁都被释放了。

该协议将
(A)保证可串行化和无死锁
(B)既不保证可串行化也不保证无死锁
(C)保证可序列化但不保证无死锁
(D)保证无死锁但不保证可序列化答案:(一)
说明:以上场景为Conservative 2PL(或Static 2PL)。在保守 2PL 协议中,事务必须在事务开始执行之前锁定它访问的所有项目。它用于避免死锁。此外,2PL 是冲突可序列化的,因此它保证了可序列化性。

因此选项A

保守 2PL 的优点:

  • 没有死锁的可能。
  • 确保可序列化。

保守党 2PL 的缺点:

  • 吞吐量和资源利用率较低,因为它在事务开始执行之前持有资源。
  • 饥饿是可能的,因为对解锁操作没有限制。
  • 2pl 是一种无死锁协议,但在实践中很难使用。

这个问题的测验