1、死锁(Deadlock):
指多个进程在运行过程中,因争夺资源而造成的一种僵局。当进程处于这种状态时,若无外力作用,它们都将无法再向前推进。
死锁 : 指进程之间无休止地互相等待!
饥饿 :指一个进程无休止地等待!
2、产生死锁的原因
- 竞争资源
- 进程间推进顺序非法
3、产生死锁的必要条件 (四个条件都具备就会死锁,缺一就不会死锁)
- 互斥条件
- 请求和保持条件
- 不剥夺条件
- 环路等待条件
4、处理死锁的基本方法:
1)事先预防:预防死锁、避免死锁
2)事后处理: 检测死锁、解除死锁
5、预防死锁的方法:
- 摒弃“请求和保持”条件
- 摒弃“不剥夺”条件: 允许进程先运行,但当提出的新要求不被满足时必须释放它已保持的所有资源,待以后需要时再重新申请。
- 摒弃“环路等待”条件
6、避免死锁:
只要使系统始终处于安全状态,便可避免发生死锁。
安全状态:系统能按某种进程顺序为每个进程分配所需资源,直至满足每个进程对资源的最大需求,并能顺利完成。
不安全状态:系统无法找到一种使多个进程能够顺利分配资源执行完的安全序列。
不是所有的不安全状态都是死锁状态
7、死锁处理方法比较: