第四章、死锁
目录:
1.基本概念
2.处理死锁的基本方法
3.死锁的检测与解除
4.鸵鸟算法
5.银行家算法
一、基本概念
死锁的概念:多个进程循环等待他方占有的资源而无限的僵持下去
根本原因:1.资源有限 2.进程间推近顺序不当
死锁的起因:并发进程的资源竞争
产生死锁的必要条件:互斥条件、不剥夺条件、请求和保持条件、环路条件
二、处理死锁的基本方法
1.预防死锁的方法:破环“请求和保持条件”(有的资源是不允许被同时访问的,如打印机,这是资源的本身属性决定的,所以这种方法并无实用价值)、破环“不剥夺”条件,破坏“环路等待”条件。
2.死锁的避免:分配资源时判断是否会出现死锁,如不会死锁,则分配资源;否则,不分配资源。
3.死锁的检测和恢复:保存资源的请求和分配信息,利用某种算法对这些信息加以检查,以判断是否存在死锁。死锁的检测和恢复算法主要检查是否有循环等待。
三、死锁检测与解除
1.检测方法:进程资源有向图、死锁定理。
2.解除方法:资源剥夺法、进程撤销法。
四、鸵鸟算法
鸵鸟算法即忽略了死锁,UNIX采用的就是鸵鸟算法
采用该方法的原因:
1)死锁检测、恢复和预防的方法的算法编写、测试和调度都很复杂
2)它们会很大程度上地降低