打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【关于“死锁”的问题 】
1、为什么会出现死锁
1.1、一个简单的例子
有两个进程准备扫描文档并记录到CD上。进程A请求扫描仪并获取,而进程B先请求CD刻录机并获取。然后进程A请求CD刻录机,失败了,因为进程B已经拥有了CD刻录机并不愿释放,而且还要请求扫描仪以完成工作。结果是,两个进程谁也无法完成工作,死锁出现了。
1.2、关于资源
扫描仪就是一种资源,从上面可以看出,对资源的请求是发生死锁的根本。其实小橙子下载资源可以是硬件设备(如CD刻录机)或是一组信息(如数据库中一个加锁的记录),简单来说资源就是能够获得、使用以及使用完之后释放的任何东西。
资源分为两类:可抢占的和不可抢占的。可抢占是指资源从拥有它的进程中抢占而不会产生副作用,从这可以看出,对可抢占资源的使用发生死锁时通过重新分配资源就可以解决。
其实有较少部分的死锁不是因为资源而导致的,这里不做讨论。
2、死锁建模
2.1、死锁的规范定义
如果一个进程集合中的每个进程都在等待只能由该进程集合中的其他进程才能引发的事件,那么,该进程集合就是死锁的。
既然是每个进程都在等待,结果就是每个进程都无法引发能够满足其他进程的事件,所有进程都会一直等待。用资源使用的话来说就是,每个进程都还需要另外的资源才能继续,而拥有这些资源的进程不会释放它们,因为这些进程都由于没有足够的资源而继续。
2.2、资源死锁的条件及应对策略
2.2.1、资源死锁的发生有4个必要条件:①互斥条件。也就是说一个资源不能被多个进程同时使用。②占有和等待条件。已经得到某个资源的进程还可以继续请求另外的资源。③不可抢占条件。如上所述,资源被抢占时会引发副作用,只能由拥有它的进程显式释放。④环路等待条件。存在一种进程循环链,链中每一个进程已获得的资源同时被下一个进程所请求。
2.2.2、有四种处理死锁的策略:①忽略该问题。②检测死锁并恢复。③小心分配资源,避免死锁的发生。④通过破坏引起死锁的4个必要条件之一,防止死锁发生。下面分别讨论这几种策略。
3、鸵鸟算法
该算法对应上面的第一种策略:忽略。被叫做鸵鸟算法是缘于这样的一个民间传说:鸵鸟在遇到问题时就会把头埋在沙子里,什么也不管,假装没有问题发生。也许你会感到很纠结:怎么会有这样一个扯淡的算法的?对于数学家,他们的想法跟你一样,绝不能容忍什么也不做的策略。但对于工程师来说,他们却会认真地考虑鸵鸟算法。当死锁发生的概率很低很低,而有一大堆其他问题等着解决时,他们就会对死锁问题采取鸵鸟算法。
4、死锁检测与死锁恢复
死锁检测基于前面提到的环路,也就是检测进程对资源的拥有和请求是否形成了环路,若是,侧说明死锁存在。本文是“简述”,不对检测算法作具体描述。
死锁恢复的方法有3种:①利用抢占恢复。②利用回滚恢复。恢复到更早的状态。③通过杀死进程恢复。实际上,这些方法都不是好方法,有很多缺陷。
5、死锁避免
避免死锁的主要算法基于安全状态的概念。而安全状态是指,如果没有死锁发生,并且即使所有进程突然请求对资源的最大需求,也仍然存在某种调度次序能够使得每一个进程运行完毕,则称该状态是安全的。
死锁避免最著名的算法是银行家算法,就是对每一个请求进行检查,如果满足这一请求后还是安全状态,则满足之,否则推迟对这一请求的满足。
6、死锁预防
死锁预防就是要破坏引起死锁的4个必要条件之一。①破坏互斥条件。使用假脱机技术,模拟多个进程同时占用一个资源。②破坏占用和等待条件。规定所有进程在开始执行之前先请求并获得所需的所有资源。③破坏不可抢占条件。也是使用假脱机技术。④破坏环路等待条件。将所有资源统一编号,进程在请求多个资源时按顺序请求。
7、总结
没有完美应对死锁的办法,也没有普遍适用的方法。只能在windows xp sp3纯净安装版xp系统下载不同的情况下,综合考虑各种策略,制定一定程度上满足要求的算法。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
系统死锁的四个必要条件与相应的解决方法
死锁,死锁必要条件及处理策略
操作系统基础:进程知识笔记(三)
操作系统产生死锁的原因和处理策略
直播APP系统源码,不可阻挡不是死锁唯一的威慑
[zz]死锁与饥饿
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服