操作系统:死锁

本文介绍了死锁的概念,指出死锁是多个进程因竞争资源形成的僵局,强调了单进程也可能出现死锁的情况。接着,阐述了死锁产生的两个主要原因:资源竞争和进程推进顺序不当,并详细列举了产生死锁的四个必要条件。文章还讨论了预防和避免死锁的策略,包括破坏不可剥夺、请求和保持以及环路等待条件,以及通过银行家算法来避免死锁的方法。
摘要由CSDN通过智能技术生成

1. 死锁的概念
死锁是多个进程因竞争资源而造成的一种僵局现象,若无外力的作用,这些进程都不能运行。
当然单进程也是可能出现死锁,原因是如果内存小的情况下,单进程放到外存,是挂起状态,即导致死锁。
2. 原因
1)竞争资源
当系统中供多个进程共享的资源不足以同时满足他们的需求时,引起他们对资源的竞争的死锁。
2)进程推进顺序非法
进程在运行过程中,如果请求和释放资源的顺序不当,也可能导致死锁如下图:
在这里插入图片描述

3. 产生死锁的必要条件
1)互斥条件
进程对分配到的资源进行排他性,独占性使用,即在一短时间内某资源只能由一个资源占用。
2)请求和保持条件
进程已经拥有并保持了至少一个资源,但是,又请求新的资源,而新请求的资源又被其他进程占用,此时请求进程被等待,但对已获得
的资源保持不放。
3)不可剥夺条件
进程所占用的资源在结束之前不能被剥夺,只能在运行结束后由自己释放
4)环路等待条件
在发生死锁时,必然存在一个“进程——资源”的环形链。

4. 处理基本方法
1)预防死锁
2)避免死锁
3)检测和接触死锁(即重启)
5.预防(早期采用的措施)
预防是通过对资源分配的原则进行限制,而使产生死锁的4个必要条件中的2,3,4个条件之一不成立即可,第一个条件,是由设备或资源的固有特性所决定,不能改变。
1)破坏“不剥夺”条件
2)破坏“请求和保持”条件
3)破坏“环路等待”条件
6.避免(现在)
前提:
系统提供资源
目前这个进程需要什么资源。
”试“分配资源并计算有没有造成死锁现象。
借上,把系统分为安全状态和不安全状态,只需让其处于安全状态即可避免死锁,但是安全状态让限制更多,导致系统的性能降低。
1)利用银行家算法避免死锁
具体算法过程偏多,在另一篇文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值