在数据库系统中,使用 Lamport 的逻辑时钟为每个事务分配唯一的时间戳。设 TS(T1) 和 TS(T2) 分别是事务 T1 和 T2 的时间戳。此外,T1 持有对资源 R 的锁,而 T2 已请求对同一资源 R 的冲突锁。假设使用相同时间戳重新启动被杀死的事务,则使用以下算法防止数据库中的死锁。
if TS(T2)
假设任何未被终止的事务最终都会终止。关于使用上述算法防止死锁的数据库系统,以下哪项是正确的?
(A)数据库系统既无死锁又无饥饿。
(B)数据库系统是无死锁的,但不是无饥饿的。
(C)数据库系统是无饥饿但不是无死锁的。
(D)数据库系统既不是无死锁也不是无饥饿。答案:(一)
解释:给定,
如果 TS(T2)
否则 T2 等待。
- T1 持有资源 R 的锁
- T2 已请求对同一资源 R 的冲突锁
根据算法,TS(T2) 所以选项A是正确的
这个问题的测验