死锁

1.死锁的定义

多个进程因为竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程将无法向前推进。

2.死锁产生的原因

(1)系统资源竞争  多个进程竞争有限的资源而陷入僵局(其实就是定义)。

(2)进程推进顺序非法  进程在运行过程中,请求和释放资源的顺序不当,也同样会引起死锁。

3.死锁产生的必要条件

(1)互斥条件  在一段时间内某资源仅为某一进程所拥有。

(2)不剥夺条件  进程所获得的资源在未使用完之前,不能被其他进程所剥夺。

(3)请求与保持条件 进程已经保持了至少一个进程,但又请求其他资源,却用对自己保持的资源不释放。

(4)循环等待条件  在循环等待链中,链中每个进程所获得的资源同时又被下一个进程所请求。

4.死锁的处理策略

其实,主要包括预防死锁,避免死锁,死锁检测和解除。

(1)死锁预防   其实就是破坏死锁的四个必要条件之一即可。优点:适用于做突发式处理的进程,不必进行剥夺。缺点:效率低,进程初始化时间延长。

(2)死锁避免  是预防和检测的折中。银行家算法重点说一下。

银行家算法的主要思想就是避免系统进入不安全状态。在每次进行资源分配时,它首先检查系统是否有足够的资源满足要求,如果有,则先进行分配,并对分配后的新状态进行安全性检查。如果新状态安全,则正式分配上述资源,否则就拒绝分配上述资源。这样保证了算法处于安全状态,避免了死锁的发生。

(3)死锁检测和解除 死锁解除的方法主要有资源剥夺法,撤销进程法以及进程回退法。


“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值