死锁

一、死锁产生的原因

1.竞争资源引起死锁

2.进程推进顺序不当

二、死锁产生的必要条件

1. 互斥条件:

进程对分配给他的资源进行排他性使用。

2. 请求和保持条件

进程已经占有至少一个资源,又提出了新资源请求,而该资源已经被使用。同时,不释放自身资源。

3.不剥夺条件

进程已获得的资源在使用结束之前不能被剥夺。

4.环路等待

环形链存在。如:P1占用P2的资源,P2占有P1的资源。

三、’死锁的解决方案:

1. 预防死锁

设置条件确保死锁产生的必要条件不成立。

2. 避免死锁

在资源的动态分配中,避免进入不安全状态。

3. 检测死锁

检测死锁的产生,然后清理死锁。

4. 解除死锁

与检测死锁配套使用,撤销或挂起一部分导致死锁的进程。

原文地址:https://www.cnblogs.com/Windeal/p/4284687.html