死锁的产生原因及产生死锁的四个必要条件?

2019年2月13日 16点热度 0条评论 来源: 骑鱼的猫咪
  • 产生死锁的原因主要是:
    • 资源互斥使用,一旦占有别人无法使用
    • 进程占有了一些资源,又不释放,再去申请其他资源
    • 各自占有的资源和互斥申请的资源形成了环
    • 如果系统资源充足,进程的资源请求能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也产生死锁。
  • 产生死锁的四个必要条件:
    • 互斥使用,这是资源固有的属性,一个资源一次只能被一个进程使用
    • 不可抢占,资源只能自愿放弃,进程已获得资源,在未使用完之前,不能强行剥夺
    • 请求和保持,一个进程因请求资源而阻塞时,对已获得资源保持不变。
    • 循环等待,在资源分配图中存在一个环路
    • 这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。
  • 死锁的解除与预防
    • 死锁忽略:一般家用pc机不对死锁进行处理,因为发生的概率较小,然后重启就可以解决
    • 死锁预防:破坏死锁出现的条件
    • 死锁避免:检测每个资源的请求如果造成死锁就拒绝,银行家算法。
    • 死锁检测+恢复:检测到死锁出现时,让一些线程回滚,让出资源
    原文作者:骑鱼的猫咪
    原文地址: https://blog.csdn.net/qq_39820860/article/details/87190610
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。