常考点
系统资源不足不是系统产生死锁的原因,资源不足只会对进程造成“饥饿”【详见王道操作系统书P153第4题】
A:资源不足和资源分配不足还是有区别的啦~
死锁是什么?
- 死锁是多个进程因为竞争资源而造成的一种互相等待
为什么会出现死锁?
系统资源的竞争【空间上】 |
|
进程推进顺序非法【时间上】 |
|
产生死锁的必要条件
- 以下四个条件都要满足才会出现死锁
互斥条件 | 多个线程不能同时使用同一个资源 |
不剥夺条件 | 进程A已经拥有资源1,在自己使用完之前不能被其他进程获取 |
请求并保持条件 | 进程A已经有资源1,想申请资源2,但是资源2被进程B持有,进程A处于等待状态,但是进程A不释放资源1 |
循环等待条件 | 两个线程获取资源的顺序构成了环形链 |
死锁的充分条件:资源分配图中每种资源只有一个,又出现了环路
如何解决死锁?【重点考各种方法,注意不要混淆了这些方法】
死锁预防 |
| |||||||||||||||
死锁避免 |
| |||||||||||||||
死锁的检测 |
| |||||||||||||||
死锁的解除 |
| |||||||||||||||
各个策略的比较 |