一、死锁产生的原因
1.竞争资源引起死锁
2.进程推进顺序不当
二、死锁产生的必要条件
1. 互斥条件:
进程对分配给他的资源进行排他性使用。
2. 请求和保持条件
进程已经占有至少一个资源,又提出了新资源请求,而该资源已经被使用。同时,不释放自身资源。
3.不剥夺条件
进程已获得的资源在使用结束之前不能被剥夺。
4.环路等待
环形链存在。如:P1占用P2的资源,P2占有P1的资源。
三、’死锁的解决方案:
1. 预防死锁
设置条件确保死锁产生的必要条件不成立。
2. 避免死锁
在资源的动态分配中,避免进入不安全状态。
3. 检测死锁
检测死锁的产生,然后清理死锁。
4. 解除死锁
与检测死锁配套使用,撤销或挂起一部分导致死锁的进程。