- 产生死锁的原因主要是:
- 资源互斥使用,一旦占有别人无法使用
- 进程占有了一些资源,又不释放,再去申请其他资源
- 各自占有的资源和互斥申请的资源形成了环
- 如果系统资源充足,进程的资源请求能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也产生死锁。
- 产生死锁的四个必要条件:
- 互斥使用,这是资源固有的属性,一个资源一次只能被一个进程使用
- 不可抢占,资源只能自愿放弃,进程已获得资源,在未使用完之前,不能强行剥夺
- 请求和保持,一个进程因请求资源而阻塞时,对已获得资源保持不变。
- 循环等待,在资源分配图中存在一个环路
- 这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。
- 死锁的解除与预防
- 死锁忽略:一般家用pc机不对死锁进行处理,因为发生的概率较小,然后重启就可以解决
- 死锁预防:破坏死锁出现的条件
- 死锁避免:检测每个资源的请求如果造成死锁就拒绝,银行家算法。
- 死锁检测+恢复:检测到死锁出现时,让一些线程回滚,让出资源
死锁的产生原因及产生死锁的四个必要条件?
最新推荐文章于 2023-11-30 10:27:39 发布