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

news/2024/11/29 4:46:02/

死锁

  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. 付出代价最小的死锁解除算法

http://www.ppmy.cn/news/1353643.html

相关文章

Pandas数据库大揭秘:read_sql、to_sql 参数详解与实战篇【第81篇—Pandas数据库】

Pandas数据库大揭秘:read_sql、to_sql 参数详解与实战篇 Pandas是Python中一流的数据处理库,而数据库则是数据存储和管理的核心。将两者结合使用,可以方便地实现数据的导入、导出和分析。本文将深入探讨Pandas中用于与数据库交互的两个关键方…

代码随想录算法训练营第二十八天|122.买卖股票的最佳时机II,55. 跳跃游戏,45.跳跃游戏II

系列文章目录 代码随想录算法训练营第一天|数组理论基础,704. 二分查找,27. 移除元素 代码随想录算法训练营第二天|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 代码随想录算法训练营第三天|链表理论基础&#xff…

太以假乱真了,大家小心

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

计算机网络-OSI模型及网络数据传输(双十一淘宝故事详解版)

首先,把一个资源的传输,想象成在双十一下,商品琳琅满目,然后剁手党们经不住诱惑,疯狂买买买。在OSI中资源传输就相当于淘宝 卖家发货--->买家收货的过程。 其中每一层分别如下所示: 应用层&#xff08…

每日OJ题_算法_递归③力扣206. 反转链表

目录 力扣206. 反转链表 解析代码 力扣206. 反转链表 206. 反转链表 LCR 024. 反转链表 难度 简单 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,…

数据结构——5.4 树、森林

5.4 树、森林 概念 树的存储结构 双亲表示法 孩子表示法 孩子兄弟表示法(二叉树表示法): 二叉树每个结点有三个变量 ① 二叉树结点值:原树结点的值 ② 二叉树左孩子:原树结点的最左孩子 ③ 二叉树右孩子&#xff1a…

AI:130-基于深度学习的室内导航与定位

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

【Node.js】path 模块进行路径处理

Node.js 执行 JS 代码时,代码中的路径都是以终端所在文件夹出发查找相对路径,而不是以我们认为的从代码本身出发,会遇到问题,所以在 Node.js 要执行的代码中,访问其他文件,建议使用绝对路径 实例&#xff1…