第三章并发进程教材.ppt

死锁的产生和定义(续) 死锁——多个进程运行过程中因争夺资源而造成的一种僵局,无外力作用,它们都无法向前推进。 有关死锁的结论: 参与死锁的进程最少是两个 (两个以上进程才会出现死锁) 参与死锁的进程至少有两个已经占有资源 参与死锁的所有进程都在等待资源 参与死锁的进程是当前系统中所有进程的子集 如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃 产生死锁的条件 1.互斥:竞争的资源一次只能被一个进程使用。 2.占有且等待:当一个进程占有一些资源,同时又申请新的资源,如果新资源申请失败,进程将占有资源且阻塞等待。 3.不剥夺:进程已占有的资源不能被其它进程强行剥夺。 4.循环等待:在系统中存在一个由若干进程形成的环形请求链,其中的每一个进程均占有一些资源,同时又申请环形请求链中下一个进程所占有的资源。 前3个条件为必要条件,第4个条件为前3个条件可能导致的结果,为死锁的充分条件,4个条件共同组成了死锁的充分必要条件。 解决死锁的方法 1.死锁防止:破坏4个条件之一;有效,使资源利用率低。 2.死锁避免:防止进入不安全态。 3.死锁检测与恢复:检测到死锁再清除。 死锁防止是通过限制死锁产生的4个充要条件之一,以预防死锁的发生。 1.互斥条件是临界资源固有属性,不能避免。 2.禁止“占有且等待”条件:全分配,全释放(AND) 缺点:(1)延迟进程运行 (2)资源严重浪费

文档评论(0)

1亿VIP精品文档

相关文档