关于死锁的考点总结(死锁的定义、产生原因、四个必要条件、如何避免)

一、死锁的定义

死锁是一种由于多个进程竞争资源陷入的一种僵局,若无外力作用,所有进程都将无法向前推进。


二、死锁的产生原因

  1. 竞争资源
  2. 进程间推进顺序非法

三、死锁的四个必要条件

  1. 互斥条件
  2. 不可剥夺条件
  3. 保持并请求条件
  4. 环路等待条件

四、如何避免死锁

  1. 同一顺序访问对象 (避免出现循环)
  2. 避免事务中的用户交互 (减少持有资源的时间,较少锁竞争)
  3. 保持事务简短并处于一个批处理中 (减少持有资源的时间)
  4. 使用较低的隔离级别 (使用较低的隔离级别(例如已提交读)比使用较高的隔离级别(例如可序列化)持有共享锁的时间更短,减少锁竞争)
  5. 使用基于行版本控制的隔离级别

银行家算法是一个避免死锁的著名算法:

当一个进程申请使用资源的时候,银行家算法通过【先 试探 分配给该进程资源】,然后【通过安全性算法判断分配后的系统是否处于安全状态】,若不安全则试探分配作废,让该进程继续等待。

原创文章 626 获赞 104 访问量 32万+

猜你喜欢

转载自blog.csdn.net/gx17864373822/article/details/105341420