全部博文(156)
分类: LINUX
2010-11-12 22:58:17
所谓死锁,是指多个进程因竞争资源而形成一种僵局,若无外力作用,这些进程都将永远不能再向前推进。
1.产生死锁的原因
(1)竞争资源
(2)进程推进顺序不当
2.产生死锁的必要条件
(1)互斥条件
(2)请求和保持条件
(3)不剥夺条件
(4)环路等待条件
只要同时具备上述4个必要条件,系统就会发生死锁,只要上述条件之一不满足,系统就不会发生死锁。
3.处理死锁的方法
1.忽略该问题。例如鸵鸟算法,该算法可以应用在极少发生死锁的的情况下。为什么叫鸵鸟算法呢,因为传说中鸵鸟看到危险就把头埋在地底下,可能鸵鸟觉得看不到危险也就没危险了吧。跟掩耳盗铃有点像。
2.检测死锁并且恢复。
3.仔细地对资源进行动态分配,以避免死锁。
4.通过破除死锁四个必要条件之一,来防止死锁产生。