产生死锁的4个必要条件:
1.互斥条件
2.请求和保持条件
3.不可抢占
4.循环等待条件
预防死锁主要分为三种:
1.破坏请求和保持条件
2.破坏不可抢占条件
3.破坏循环等待条件
避免死锁同样属于事先预防的策略,但并不是事先采取某种限制措施,破坏产生死锁的必要条件,而是在资源动态分配过程中,防止系统进入不安全状态,以避免发生死锁。
避免死锁的基本思想就是确保系统始终处于安全状态。
最具有代表性的避免死锁的算法是Dijkstra的银行家算法。
解除死锁方法(2种):
1.抢占资源
2.终止(或撤销)进程。
注意:
进程调度算法使用不当会造成进程长时间等待,与死锁没有关系。造成死锁主要看产生死锁的四个必要条件。