死锁的产生与处理

本文详细介绍了操作系统中死锁的四个必要条件:互斥、请求与保持、不可抢占和循环等待,并阐述了预防、避免、检测和解除死锁的策略。预防死锁通过设置限制来破坏条件,避免死锁则在资源分配过程中防止进入不安全状态,检测死锁允许发生后再解决,而解除死锁则是发现死锁后释放进程资源。这四种方法在防止死锁的强度和资源利用率间寻求平衡。
摘要由CSDN通过智能技术生成
产生死锁的必要条件(任意一个条件不成立,死锁就不会发生):

1.互斥条件:资源一段时间内只能被一个进程占有,其他进程请求资源只能等待,直至占有该资源的进程用完并释放。
2.请求和保持条件:进程占有了至少一个资源,但又提出新的资源请求,而该被请求资源已被其他进程占有,此时请求进程被阻塞,同时对自己已经占有的资源保持占有。
3. 不可抢占条件:进程已获得资源在未使用完之前不能被抢占,只能进程使用完时由其自己释放。
4.循环等待条件:该条件指在发生死锁时,必存在一个“进程——资源”循环链,即进程集合{P0,P1···,Pn}中的P0正在等待已被P1占用的资源,P1正在等待已被P2占用的资源,···,Pn正在等待已被P0占用的资源。

处理死锁的方法:

·第一种策略主要包括预防死锁方法和避免死锁方法
·第二种策略包括了检测死锁方法和解除死锁方法
·第三种策略为大多数系统所使用。
(1)预防死锁:该方法较为直观和简单,通过设置某些限制,破坏四个必要条件以达到预防死锁的目的。该方法易实现,已被广泛使用。

(2)避免死锁:同样属于事先预防方法,而不需通过事先采取某些限制条件
来破坏产生死锁的四种必要条件;而是在资源动态分配过程中,用某种方法防止系统进入不安全状态,避免死锁。

(3)检测死锁:该方法无需事先采取任何限制性措施,允许过程中发生死锁,用某种方法检测出死锁发生,采取相应的措施将进程从死锁中释放。

(4)解除死锁,指当检测出系统中发生死锁,采取相应的措施将进程从死锁中释放。通常采用的措施是撤销一些进程,回收他们的资源,资源分配给处于阻塞态的进程,使这些进程能够继续运行。
上述四种方法,从(1)~(4)对死锁的防范程度逐渐减弱,但对应的资源利用率却逐渐提高,且进程因资源因素而阻塞的频度逐渐下降(即进程并发程度逐渐提高)。

大致内容:计算机操作系统(慕课版)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值