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

news/2024/5/20 15:56:39 标签: 计算机操作系统, 死锁

死锁

  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.niftyadmin.cn/n/5380548.html

相关文章

突破编程_C++_面试(基本数据类型)

面试题1:在32位和64位系统上,int、short、long、long long 和 char 类型通常分别占用多少字节 在 32 位和 64 位系统上,int、short、long、long long 和 char 类型的大小可能会有所不同,这取决于编译器和操作系统。但按照常见的约…

帮管家 CRM init 信息泄露漏洞复现 [附POC]

文章目录 帮管家 CRM init 信息泄露漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现帮管家 CRM init 信息泄露漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此…

二.自定义头文件

一.Worker.h 1.1概述 - 类名&#xff1a;Worker - 继承关系&#xff1a;所有其他类&#xff08;Employee、Manager、Boss&#xff09;都继承自该抽象类 - 头文件保护&#xff1a;使用 pragma once 防止头文件重复包含 - 引入标准库&#xff1a;包含 <iostream> 和 <st…

设计模式Python实现

过年在家瞎折腾&#xff0c;闲着无聊看到设计模式&#xff0c;于是就想着用Python实现一下。 简单工厂 根据传入的参数决定创建出哪一种产品类的实例。 class CashFactory:def createCashAdapter(self, type):if type "满100减20":return CashReturn(100, 20)elif…

Springboot之全局异常处理

1、定义异常类 import com.bhl.common.utils.MessageUtils; import com.bhl.common.utils.StringUtils;/*** 基础异常 */ public class BaseException extends RuntimeException {private static final long serialVersionUID 1L;/*** 所属模块*/private String module;/*** 错…

中科大计网学习记录笔记(十二):TCP 套接字编程

前前言&#xff1a;大家看到这一章节的时候一定不要跳过&#xff0c;虽然标题是编程&#xff0c;但实际上是对 socket 的运行机制做了详细的讨论&#xff0c;对理解 TCP 有很大的帮助&#xff1b;但是由于本节涉及到了大量的编程知识&#xff0c;对于一些朋友来说不是很好理解&…

时序预测 | Matlab实现BO-LSSVM贝叶斯算法优化最小二乘支持向量机时间序列预测

时序预测 | Matlab实现BO-LSSVM贝叶斯算法优化最小二乘支持向量机时间序列预测 目录 时序预测 | Matlab实现BO-LSSVM贝叶斯算法优化最小二乘支持向量机时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现BO-LSSVM贝叶斯算法优化最小二乘支持向量机时间…

Effective Objective-C 学习(三)

理解引用计数 Objective-C 使用引用计数来管理内存&#xff1a;每个对象都有个可以递增或递减的计数器。如果想使某个对象继续存活&#xff0c;那就递增其引用计数&#xff1a;用完了之后&#xff0c;就递减其计数。计数变为 0时&#xff0c;就可以把它销毁。 在ARC中&#xf…