操作系统知识整理 - 死锁

定义死锁是指各并发进程互相等待对方所拥有的资源,且这些并发进程在得到对方的资源之前不会释放自己占有的资源,从而造成了各并发进程不能继续往前推进的状态。

起因系统提供的资源个数少于并发进程所要求的该类资源数。

显然,由于资源的有限性,不可能为所有进程无限制地提供资源。采用适当的资源分配算法,就可以达到消除死锁的目的。因此需要先了解产生死锁的必要条件。

必要条件

(1)互斥条件。并发进程所要求占有的资源不能同时被两个以上进程使用,进程对它所需要的资源进行排他性控制

(2)不剥夺条件。进程占有的资源只能由进程本身释放,而不能被其他进程强行剥夺。

(3)部分分配。进程每次申请它所需要的一部分资源,在等待新资源的同时,继续占用已分配到的资源(即使已经使用完)。

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

只要使上述4个必要条件中的某一个不满足,死锁就能解除

 

实际上,消除死锁一般依靠检测恢复

当进程进行资源请求时,死锁检测算法检查并发进程是否出现环路,若出现,最简单的方法是终止各锁住进程,或按影响级别由低到高的顺序中止进程序列,直至释放的资源足够完成剩余进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值