死锁

作者: 大海孤了岛 | 来源:发表于2017-04-07 13:03 被阅读2次
    出现死锁的必要条件
    • 互斥:任何时刻只能有一个进程使用一个资源实例
    • 持有并等待:进程保持至少一个资源,并正在等等获取其他进程持有的资源
    • 非抢占:资源只能在进程使用后自愿释放
    • 循环等待:出现环形等待
    死锁的处理方法
    • ** 死锁预防:确保系统永远不会进入死锁状态**

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

    a. 互斥:

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

    b. 持有并等待:

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

    c. 非抢占

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

    d. 循环等待

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

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

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

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

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

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

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

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

    相关文章

      网友评论

        本文标题:死锁

        本文链接:https://www.haomeiwen.com/subject/aohhattx.html