3 处理机调度和死锁(下)

死锁

  1. 引起死锁:需要采用互斥访问的 不可以被抢占的资源(临界资源)

  2. 系统资源分类:

    1. 可重用性资源 可消耗性资源
    2. 可抢占性资源 不可抢占性资源
  3. 计算机系统中的死锁

    1. 竞争不可抢占性资源引起死锁
    2. 竞争可消耗资源引起死锁
    3. 进程推进顺序不当引起死锁
  4. 死锁定义:一组相互竞争系统资源或进行通信的进程间的永久阻塞

  5. 死锁危害:死锁进程无限期阻塞等待、资源浪费、更多进程卷入死锁、系统死机

  6. 产生死锁原因:

    1. 动态资源分配策略
    2. 资源可用数量少于需求数量
    3. 进程并发过程的偶然因素
  7. 产生死锁的必要条件:

    1. 互斥条件 2. 请求和保持条件 3. 不可抢占条件 4. 循环等待条件
  8. 处理死锁的方法:

    1. 预防死锁 事前 (通过破坏产生死锁的四个必要条件中的一个或者几个)

      1. 破坏请求和保持条件

        1. 第一种协议(静态资源分配策略 一次性 全部)
        2. 第二种协议(动态资源分配策略 需要时动态申请 使用完动态释放)
      2. 破坏不可抢占条件

        当一个已经保持了某些不可被抢占资源的进程,提出新的资源请求而不能得到满足时,它必须释放已经保持的所有资源

      3. 破坏循环等待条件

        对系统所有资源类型进行线性排序,并赋予不同的序号

    2. 避免死锁 事前 (在资源动态分配过程中,防止系统进入不安全状态,以避免发生死锁)

      1. 利用银行家算法避免死锁(计算但简单 求安全序列)
    3. 检测死锁 事后

      1. 资源分配图
    4. 解除死锁 事后

      1. 终止进程方法:
        1. 终止所有死锁进程
        2. 逐个终止进程
      2. 付出代价最小的死锁解除算法

相关推荐

  1. 3 处理机调度

    2024-02-18 18:56:01       51 阅读
  2. WindowsOracle表处理过程

    2024-02-18 18:56:01       38 阅读
  3. 的定义以及产生的必要条件,处理

    2024-02-18 18:56:01       45 阅读
  4. 产生的原因预防

    2024-02-18 18:56:01       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-18 18:56:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-18 18:56:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-18 18:56:01       82 阅读
  4. Python语言-面向对象

    2024-02-18 18:56:01       91 阅读

热门阅读

  1. Linux的命令简记

    2024-02-18 18:56:01       48 阅读
  2. Rust CallBack的几种写法

    2024-02-18 18:56:01       55 阅读
  3. 11-编写自动化测试

    2024-02-18 18:56:01       47 阅读
  4. 12-输入/输出项目构建命令行程序

    2024-02-18 18:56:01       50 阅读
  5. [蓝桥2022国赛] 费用报销

    2024-02-18 18:56:01       46 阅读
  6. 贪吃蛇小游戏

    2024-02-18 18:56:01       47 阅读
  7. PCIE 4.0 Power Mangement

    2024-02-18 18:56:01       47 阅读
  8. python用socket传输图片

    2024-02-18 18:56:01       43 阅读
  9. Redis常用命令

    2024-02-18 18:56:01       47 阅读
  10. 4 存储器管理(下)

    2024-02-18 18:56:01       45 阅读
  11. 16.3 Spring框架_SpringJDBC与事务管理(❤❤❤❤)

    2024-02-18 18:56:01       54 阅读
  12. Docker-compose容器编排技术

    2024-02-18 18:56:01       40 阅读
  13. CSS的伪类选择器:nth-child()的用法示例

    2024-02-18 18:56:01       49 阅读
  14. Android13.0 系统Framework发送通知流程分析

    2024-02-18 18:56:01       50 阅读