死锁

本文深入探讨了死锁的概念,分析其产生的原因与必要条件,包括互斥、不可剥夺、请求保持及循环等待条件。并介绍了死锁的预防、避免、检测与解除策略,帮助读者理解如何在系统设计中规避死锁。

死锁的概念:在2个或多个并发进程中,如果每个进程持有某有资源而又都等待别的进程释放它或他们现在保持的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是2个或多个进程被无限期地阻塞、相互等待的一种状态。
死锁产生的原因:系统资源不足,进程推进顺序非法
产生死锁的必要条件:
  1.互斥条件:一个资源每次只能被一个进程使用
  2.不可剥夺条件:进程已获得资源,在未使用完之前,不能被其他进程强行剥夺,只能主动释放
  3.请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。
  4.循环等待条件:即进程集合{p0,p1,p2,p3……pn};p0正在等待p1占用的资源,p1正在等待p2占用的资源,pn正在等待p0占用的资源。
 只要上述一个条件不成立,就不会发生死锁。
死锁的解除和预防:理解了死锁的原因,以及产生死锁的四个必要条件,就可以最大可能地避免和预防和解锁死锁。所以在系统设计、进程调度等方面注意如何不让这四个必要条件成立,如何确定资源的合理分配算法,避免进程永久占据系统资源。对资源的分配要给予合理规划
死锁的处理策略:鸵鸟策略、预防策略、避免策略、检测与解除死锁
————————————————
版权声明:本文为优快云博主「xiongluo0628」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/xiongluo0628/article/details/81461053

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值