死锁
一、什么是死锁
一组进程中的每一个进程都在等待仅有该组进程中的其它进程才能引发的事件,那么该组进程是死锁的。
二、死锁的必要条件
产生死锁必须具备下列四个条件,缺一不可:
- 互斥:进程对获取到的资源进行排他性使用
- 请求和保持:进程已经至少保持了一个资源,但又提出了新的资源请求
- 不可剥夺:进程已获得的资源在使用完成之前,不能被抢占
- 循环等待:发生死锁时,必须存在一个进程一个资源的循环链
三、处理死锁
- 预防死锁:去避免同时满足四个必要条件
- 避免死锁:通过某种手段,避免进入不安全状态。银行家算法、安全性算法
- 检测死锁:监控死锁的发生,
- 解除死锁:当监控到死锁发生时,通过撤销进程等手段破坏四个必要条件,解除死锁
Loading...