死锁

一.死锁发生的条件

死锁的发生必须具备下列4个必要条件:
互斥:任一时刻只允许一个进程使用资源
请求和保持:进程在请求其余资源时,不主动释放已经占用的资源
非剥夺:进程已经占用的资源,不会被强制剥夺
环路等待:环路中的每一条边是进程在请求另一进程已经占有的资源。

二.处理死锁的方法

1.预防死锁:破坏四个必要条件中的一个或几个条件;  易于实现,但会导致资源利用率和系统吞吐量降低
预防死锁的3种策略:
–摒弃“请求和保持”条件:要求所有进程一次性申请所需全部资源,保证不等待资源;
-摒弃“不剥夺”条件:对于已经保持了某些资源的进程,当他再提出新的资源要求而不能立即满足时,必须释放已保持的所有资源,待以后需要时重新申请。
–摒弃“环路等待”条件:把资源分类按顺序排列,所有进程对资源的请求必须严格按照资源序号递增的次序提出,保证不形成环路;
2.避免死锁:用某种方法在资源动态分配过程中,防止系统进入不安全状态。 实现有难度,但可获得较高的资源利用率和系统吞吐量。
1.系统的安全状态
2.利用银行家算法避免死锁
3.检测死锁:允许死锁发生。通过检测机构检测,然后采取措施,清除死锁。
4.解除死锁:与检测配套完成。常通过撤销或挂起一些进程实现。
1.重新启动
2.进程回退回滚每个死锁进程到前一个检查点,重新执行每个进程。
3.撤销死锁进程:全部撤销;按照某种原则逐个选择死锁进程进行撤消,直到解除系统死锁
4.剥夺资源按照某种原则逐个剥夺进程资源,直到解除死锁。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值