死锁(5.1)

news2025/7/19 1:01:48

死锁

1 死锁的基本概念

1.1 死锁的定义

死锁是发生在一组相互合作或竞争的线程或进程中的一个问题。因此可以定义为:一组竞争系统资源或相互通信的进程相互的“永久”阻塞。若无外力作用,这组进程将永远不能继续执行。
在这里插入图片描述

1.2死锁产生的原因进程

(1)资源数小于要求该种资源的进程数

//A、B分别代表某种资源
进程P
......
get(A);
......
get(B);
......
release(A);
......
release(B);
......

进程Q
......
get(B);
......
get(A);
......
release(B);
......
release(A);
......

当进程P占用资源A,进程Q占用资源B,接下来导致进程P无法获得B资源,进程Q无法获得A资源。即双方都占用对方所需要的资源,这样就发生了死锁。
(2)进程的推进顺序非法
在这里插入图片描述
在这里插入图片描述

2 死锁的预防与避免

2.1 产生死锁的四个必要条件

  • 互斥条件
  • 请求保持条件
  • 不剥夺条件
  • 环路条件

2.2 死锁的预防

采用资源的有序分配:令所有资源排队,并赋予不同的序号。当进程请求资源时,必须严格按递增的次序提出,从而消除了环路。
缺点:

  • 定好序号后,增加新设备类型受到限制。
  • 尽管定序号时考虑大多数作业使用资源的顺序。但会发生使用顺序与规定顺序不一致的情况,造成资源浪费。
  • 限制用户简单、自主地编程。死锁的预防措施低效!
    可以去掉“请求保持条件”,“不剥夺条件”,“环路条件”,但不能去掉“互斥条件”。

2.3 死锁的避免

避免死锁是通过明智的选择,确保系统永远不会到达死锁点。即动态地决定是否分配资源给进程!

  • 安全状态是指系统至少存在一个安全序列<P1, P2, …, Pn>,按照这个序列为进程分配资源,直到满足最大需求,每个进程都可顺序完成。
  • 若系统不存在这样一个安全序列,则系统处于不安全状态。

在这里插入图片描述

2.4 死锁的检测与解除

资源分配图的简化

  • 在图中找出一个既不阻塞又非独立的进程结点pi,消去pi所有的请求边和分配边,使之成为孤立结点。
  • 在进行一系列简化后,能消去图中所有的边,使所有进程都成为孤立结点,则称该图是可以完全简化的,否则若不能通过任何过程使该图完全简化,则称该图是不可完全简化的。

在这里插入图片描述
死锁的解除
当发现死锁时,应立即把它们从死锁中解脱出来,常采用的两种方法是:

  • 剥夺资源:从其它进程剥夺足够数量的资源给死锁进程。
  • 撤消进程:撤消的原则是
      为解除死锁状态所需撤消的进程数目最小。
      撤消进程所付出的代价最小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/347402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第四章 统计机器学习

机器学习&#xff1a;从数据中学习知识&#xff1b; 原始数据中提取特征&#xff1b;学习映射函数f&#xff1b;通过映射函数f将原始数据映射到语义空间&#xff0c;即寻找数据和任务目标之间的关系&#xff1b; 机器学习&#xff1a; 监督学习&#xff1a;数据有标签&#x…

基于Java实现的商品出入库管理系统

基于Java实现的商品出入库管理系统&#xff08;文末附源码&#xff09; 前言 一、出入库管理系统含义介绍&#xff1a; 出入库管理系统是一套利用一物一码技术对仓库货物各环节实施全过程控制管理的系统&#xff0c;可对仓库货物进行入库、出库、货位、批次、保质期等实现一…

DDL 数据定义语言

DDL 数据定义语言 目录概述一、库的管理1、库的创建2、库的修改【一般不修改&#xff0c;容易出现错误】3、库的删除二、表的管理【重要】1、表的创建2、表的修改3、表的删除4、表的复制 【可以跨库复制】练习题概述 数据定义语言 库和表的管理 一、库的管理 创建、修改、删除…

分享116个HTML电子商务模板,总有一款适合您

分享116个HTML电子商务模板&#xff0c;总有一款适合您 116个HTML电子商务模板下载链接&#xff1a;https://pan.baidu.com/s/1gaff8RsoYUD_ep0ejhGkMw?pwdzby2 提取码&#xff1a;zby2 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 建筑行业电子商务模板 建…

2.1单区域集成IS-IS

2.2.1 实验一:单区域集成IS-IS 实验目的实现IS-IS协议基本配置实验拓扑配置单区域集成IS-IS的拓扑图如图2-4所示: 图2-4:配置单区域集成IS-IS 实验步骤配置IP地址R1的配置 <Huawei>system-view

MySQL必会四大函数-窗口函数

在了解窗口函数之前&#xff0c;我们必须了解聚合函数。常见的聚合函数&#xff0c;包括 AVG、COUNT、MAX、MIN、SUM 以及 GROUP_CONCAT&#xff0c;常和GROUP BY 函数一起使用。聚合函数的作用就是对一组数据行进行汇总计算&#xff0c;并且返回单个分析结果。 窗口函数和聚合…

用最新版 VoxEdit 来提升你们的创造力!

众所周知&#xff0c;VoxEdit 可以为你们提供 Voxel 资产建模、装配和制作动画并与全世界分享的一站式服务&#xff0c;而这些全都是免费的。我们一直倾听社区意见并希望让所有人都能更容易进入 The Sandbox 元宇宙。VoxEdit 最新更新版本已经推出&#xff01;为了软体更本土化…

MySQL的触发器

目录 一.概述 介绍 触发器的特性 操作—创建触发器 操作—new和old 操作—查看触发器 操作—删除触发器 注意事项 一.概述 介绍 触发器&#xff0c;就是一种特殊的存储过程。触发器和存储过程一样是一个能够完成特定功能、存储在数据库服务器上的SQL片段&#xff0c;但是…

MACD红二波选股公式,选出MACD二次翻红的标的

经过一段上涨行情之后&#xff0c;市场出现了时间稍长或者幅度稍大的调整&#xff0c;MACD指标的DIF、DEA会出现死叉&#xff0c;柱线由红色转变为绿色。 而调整时间较短或者幅度较小&#xff0c;MACD红柱会缩短&#xff0c;但不出现绿柱&#xff0c;之后红柱开始变长&#xff…

Python-第六天 Python数据容器

Python-第六天 Python数据容器一、数据容器入门1.数据容器二、数据容器&#xff1a;list(列表)1.列表的定义2.列表的下标&#xff08;索引&#xff09;3.列表的常用操作&#xff08;方法&#xff09;4.练习案例:常用功能练习5.list&#xff08;列表&#xff09;的遍历5.1 列表的…

RabbitMQ 入门到应用 ( 三 ) 交换机分类

4.交换机 Exchange 分类 4.0.创建队列Queue 在 操作界面 分别 添加 fivemall.goods fivemall.order fivemall.admin yuan.admin 四个队列 4.1.Direct Exchange(直接交换机) 该类型的交换器将所有发送到该交换器的消息被转发到RoutingKey指定的队列中&#xff0c;也就是说路由…

JavaScript JSON

文章目录JavaScript JSON什么是 JSON?JSON 实例JSON 格式化后为 JavaScript 对象JSON 语法规则JSON 数据 - 一个名称对应一个值JSON 对象JSON 数组JSON 数组JSON 字符串转换为 JavaScript 对象相关函数JavaScript JSON JSON 是用于存储和传输数据的格式。 JSON 通常用于服务端…

简单实用的CSS属性(滑轮滚动保持头部不动、暂无数据显示、元素隔开距离、带背景的文字效果、网页上禁止选中文字、校验值有效为绿色无效为红色、)

简单实用的CSS属性&#xff08;滑轮滚动保持头部不动、暂无数据显示、元素隔开距离、带背景的文字效果、网页上禁止选中文字、校验值有效为绿色无效为红色、&#xff09; 目录 一、滑轮滚动保持头部不动 二、暂无数据显示 三、元素隔开距离 四、带背景的文字效果 backgro…

9个相见恨晚的提升办公效率的网站!

推荐9个完全免费的神器网站&#xff0c;每一个都是功能强大&#xff0c;完全免费&#xff0c;良心好用&#xff0c;让你相见恨晚。 1&#xff1a;知犀思维导图 https://www.zhixi.com/ 知犀思维导图是一个完全免费的宝藏在线思维导图工具。它完全免费&#xff0c;界面简洁唯美…

二【单表的增删改查】(只演示增 )

目录1.1 前述1.2 结果映射resultMap1.2.1 字段名和属性名不匹配情况1.2.2 解决方法1.3 使用Insert 方法添加数据&#xff08;涉及主键 问题&#xff09;1.1 前述 MyBatis可以方便的对数据库进行操作&#xff0c;而数据库表可能是一个相对独立的表&#xff08;这里谓之单表&…

2023年1月手机热门品牌型号排行榜(手机行业趋势分析)

近期苹果降价引起人们的关注&#xff0c;并且优惠较大&#xff0c;iPhone 14 Pro系列在苹果官方授权渠道均降价&#xff0c;线下授权门店普遍降价700元左右。iPhone Pro与Pro Max作为苹果的旗舰产品&#xff0c;通常被认为是更为保值的机型&#xff0c;一般来说&#xff0c;不会…

分布式数据库(DorisDB、Clickhouse、TiDB)调研

1. 性能功能特点 B站视频&#xff1a;DorisDB VS ClickHouse OLAP PK 1.1 DorisDB 场量&#xff1a;线上数据应用 访问官方网站DorisDB企业版文档 DorisDB是鼎石科技由Apache Doris核心研发团队打造的新一代企业级MPP数据库。它继承了Apache Doris项目十多年研发成果&…

vr汽修仿真实训教学整体方案软件专业定制

随着网络、多媒体、人机交互等技术的发展,传统的教学模式受到越来越大的挑战.其中,汽车专业教学矛盾较为突出。 传统的汽车专业教学通常采用以PPT、视频、音频等传统视听教学系统的理论教学和实训车间实际操作的实训教学.这种教学模式不仅不能引起学生的学习兴趣,同时需要大量实…

MybatisPlus使用聚合函数

前言 今天遇到了一个求总数返回的情况&#xff0c;我一想这不是用sum就完事了吗。 但是仔细想想&#xff0c;MybatisPlus好像没有直接使用sum的api。 虽然没有直接提供&#xff0c;但是办法还是有的&#xff0c;下面就分享下如何实现的&#xff1a; 首先如果使用sql是这么写…

【计算机网络期末复习】重点知识总复习

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4e3;专栏定位&#xff1a;为想复习学校计算机网络课程的同学提供重点大纲&#xff0c;帮助大家渡过期末考~ &#x1f4da;专栏地址&#xff1a;https://blog.csdn.net/newin2020/cate…