死锁

出现死锁的必要条件
  • 互斥:任何时刻只能有一个进程使用一个资源实例
  • 持有并等待:进程保持至少一个资源,并正在等等获取其他进程持有的资源
  • 非抢占:资源只能在进程使用后自愿释放
  • 循环等待:出现环形等待
死锁的处理方法
  • ** 死锁预防:确保系统永远不会进入死锁状态**

预防是采用某种策略,限制并发进程对资源的请求,使系统在任何时刻都不满足死锁的必要条件

a. 互斥:

  • 把互斥的共享资源封装为可同时访问

b. 持有并等待:

  • 进程请求资源时,要求它不持有任何其他资源
  • 仅允许进程在开始执行时,一次请求所有需要的资源
  • 资源利用率低

c. 非抢占

  • 如进程请求不能立即分配的资源,则释放已占有资源
  • 只在能够同时获得所有需要资源时,才执行分配操作

d. 循环等待

  • 对资源排序,要求进程按顺序请求资源

  • 死锁避免:在使用前进行判断,只允许不会出现死锁的进程请求资源

利用额外的先验信息,在分配资源时判断是否会出现死锁,只在不会死锁时分配资源

  • a.要求进程声明需要资源的最大数目

  • b. 限定提供与分配的资源数量,确保满足进程的最大需求

  • c. 动态检查资源分配状态,确保不会出现环形等待

  • 死锁检测和恢复:在检测到运行系统进入死锁状态后,进行恢复

  • 通常操作系统会忽略死锁

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、竞态条件: 定义:竞态条件指的是一种特殊的情况,在这种情况下各个执行单元以一种没有逻辑的顺序执行动作,从而导致...
    Hughman阅读 1,477评论 0 7
  • 20.1死锁概念 由于竞争资源或者通信关系,两个或更多线程在执行中出现,永远相互等待只能由其他进程引发的事件 进程...
    龟龟51阅读 757评论 0 1
  • 死锁产生的原因和解锁的方法 产生死锁的四个必要条件: (1) 互斥条件:一个资源每次只能被一个进程使用。 (2) ...
    憩在河岸上的鱼丶阅读 1,563评论 0 4
  • 资源问题 在系统中有许多不同类型的资源,其中可以引起死锁的主要是,需要采用互补访问方式的、不可以被抢占的资源,即临...
    NoFacePeace阅读 1,163评论 0 0
  • 年轻的资本在于荷尔蒙和来自书本世界的罗曼蒂克。 今天分享个小故事,就像随风逝去的青春一般,我们老去的时候,有过往回...
    有心知心阅读 377评论 1 1

友情链接更多精彩内容