(简答题)
什么是活锁?什么是死锁?
正确答案
如果事务Tl封锁了数据R,事务几又请求封锁R,于是几等待。几也请求封锁R,当Tl释放了R上的封锁之后系统首先批准了几的请求,几仍然等待。然后几又请求封锁R,当几释放了R上的封锁之后系统又批准了几的请求……几有可能永远等待,这就是活锁的情形。活锁的含义是该等待事务等待时间太长,似乎被锁住了,实际上可能被激活。如果事务Tl封锁了数据Rl,几封锁了数据凡,然后Tl又请求封锁几,因几已封锁了几,于是Tl等待几释放几上的锁。接着几又申请封锁Rl,因Tl已封锁了Rl,几也只能等待Tl释放Rl上的锁。这样就出现了Tl在等待几,而几又在等待T}的局面,T}和几两个事务永远不能结束,形成死锁。
答案解析
略