简答题

请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁?

正确答案

数据库系统一般采用允许死锁发生,DBMS检测到死锁后加以解除的方法。DBMS中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。超时法是:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单,但有可能误判死锁,事务因其他原因长时间等待超过时限时,系统会误认为发生了死锁。若时限设置得太长,又不能及时发现死锁发生。DBMS并发控制子系统检测到死锁后,就要设法解除。通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事务得以继续运行下去。当然,对撤销的事务所执行的数据修改操作必须加以恢复。

答案解析

相似试题
  • 当系统出现死锁时,请给出死锁恢复的步骤

    简答题查看答案

  • 什么东西是死锁?请给出预防死锁的若干方法。

    简答题查看答案

  • 死锁产生的必要条件是什么?死锁的预防、避免和检测各有什么不同?各举一种相应的方法。

    简答题查看答案

  • 在操作系统设计时确定资源分配算法, 以消除发生死锁的任何可能性, 这种解决死锁的方法是()

    填空题查看答案

  • 写一个无死锁、无饥饿的哲学家进餐问题的解。  5个哲学家围坐在圆桌边。每人前面有一支筷子。当一个哲学家思考时,他不影响其他同事。一段时间后,他需要用餐了,而且试图拿到最靠近他的两支筷子。当他拿到两支筷子后,就开始用餐。用毕放下筷子,重新开始思考。  死锁:当5个人同时拿自己左边的一支筷子。再要拿右边的筷子时。他们的要求会被无休止的推迟。这就发生了死锁。  饥饿:当5个人同时拿自己左边的一支筷子,看到右边不可用。同时放下自己左边的一支筷子。等一会,又同时拿起右边的筷子。这样不停忙着。但都无法进展。就发生了饥饿。

    简答题查看答案

  • 什么是死锁?如何避免发生死锁?

    简答题查看答案

  • 死锁的发生是坏事还是好事?试说明理由。如何解除死锁状态?

    简答题查看答案

  • 检测死锁的方法有()

    多选题查看答案

  • 检测死锁的方法有()、()。

    填空题查看答案