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