操作系统第六次笔记(死锁)

1.死锁:多个进程因争夺资源而造成的僵局,若无外力作用,所有进程都无法继续运行。
2.死锁产生的四个条件:
①互斥条件:一段时间内仅能被一个进程占有的资源,若有其他进程请求必须等待。
②不剥夺条件:进程所获得的资源在未使用完前不能被抢占。
③请求并保持条件:进程已经有了一个资源还要申请其他的资源,但是这个资源又不会被释放,会一直被占用。
④循环等待:等待资源的进程形成了一个环,一个个都需要其他的释放导致都无法释放。
3.死锁的处理策略
①死锁预防。设置某些限制条件,破坏四个条件中的一个。事先预防策略,对进程的限制较大,会导致系统的效率低。
②死锁避免。在资源分配过程中用某种方式防止系统进入不安全状态。
③死锁的检测及接触。不采取提前措施,定期检查等到死锁发生后及时检测到死锁的发生并解决之。要通过剥夺解除死锁,会造成已执行的进程被重置造成资源浪费。
4.死锁预防的四种破坏:
①破坏资源共享不互斥条件:将系统资源改为不互斥,基本不能用这种方法。
②破坏资源不剥夺条件:当已经拥有某资源的进程获得新资源失败时要把之前占用的资源都释放掉。
③破坏请求并保持条件:采用预先静态分配方法,在进程运行前就分配所有资源,否则就不开始,一旦开始运行就一直占用这些资源。缺点:会造成资源的浪费,会造成饥饿。
④破坏循环等待条件:给系统的进程编号,规定必须按照编号顺序进行排序,同类资源一次申请完。进程只要申请资源S1,以后就只能申请S2以后的资源。限制了很多进程只能按顺序申请资源,但很多资源在资源使用时顺序可能不同。
5.死锁避免
死锁避免是事先预防状态,防止系统进入不安全状态,相比死锁预防限制更少,系统性能更好。
①系统安全状态:系统动态的分配资源,若能找到一个序列使系统能避免死锁则系统就处在安全状态,若一个序列都无法满足则处于不安全状态。
②银行家算法:安全状态的延申,先计算现在还有多少资源然后寻找现有资源能满足的进程需求,找到后收回该进程的所有资源一步一步做直到完成所有进程。若没有能满足的进程则不存在安全序列,该系统处于不安全状态。
6.死锁的检测和解除
①资源分配图:在这里插入图片描述
圆形表示进程,矩形表示资源节点,矩形里面的圆形表示一个资源,箭头指向圆形表示已经给他分配了多少资源,箭头指向矩形表示还需要多少资源,查看是否能满足某个进程,满足后可收回分配给其的资源。可检测出系统是否已经处在死锁状态。
②死锁解除:已经发生死锁采用措施接触死锁。
1)资源剥夺法:挂起一些死锁进程释放其所占资源。
2)撤销进程法:强制撤销某些进程释放其所占资源。
3)进程回退法:让某些进程向后回退到不会发生死锁的程度,回退的进程要释放某些资源。要系统设置还原点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值