deadlock

来源:岁月联盟 编辑:zhu 时间:2010-02-07
    

死锁的概念 死锁:是多个进程循环等待它方占有的资源而无限期僵持下去的局面。例如,两人竟过独木桥,两车竟过单行桥等交通阻塞现象,原因是共享资源(道路)。产生死锁的必要条件:互斥条件:都为独占性资源,一方占用就不释放。不可抢占条件:不能由申请方强夺。占有且申请条件:至少占有一资源,又申请新资源循环等待条件:存在进程等待序列{p1,p2,…pn}循环等待。死锁的预防只要打破四个必要条件之一就能有效预防死锁的发生:打破互斥条件:改造独占性资源为虚拟资源,大部分资源已无法改造。打破不可抢占条件:当一进程占有一独占性资源后又申请一独占性资源而无法满足,则退出原占有的资源。资源利用率、系统性能下降。打破占有且申请条件:采用资源预先分配策略,即进程运行前申请全部资源,满足则远行,不然就等待,这样就不会占有且申请。缺点:1.大部分进程运行前不知所有资源。2.资源利用率低,许多资源在进程中使用时间很短,但被早早的分配了。3.降低了进程的并发性,能同时满足要求的进程少了。打破循环等待条件:实现资源有序分配策略,对所有设备实现分类编号,所有进程只能采用按序号递增的形式申请资源。缺点:1.限制了进程对资源的请求,且资源编号困难。2.暂时不用的小编号的资源需先申请,加长了它的占用时间死锁的避免静态策略:对申请资源的活动加以限制,使不同时具备四个条件。动态策略:分配资源时,预测有无可能发生死锁,避免可能发生的死锁,不限制资源申请活动。安全序列:系统中的进程按照某一次序分配资源可以依次运行完毕,该次序为安全序列。安全序列的构造:进程序列{p1,p2,…pn},若对每一进程pi(0

上一篇:decibel
下一篇:Debian

图片内容