DJ3-5 死锁概述

news2025/1/20 14:51:07

目录

3.5  死锁概述

3.5.2  计算机系统中的死锁

1. 竞争资源

2. 进程推进顺序不当

3.5.3  死锁的必要条件和处理方法

1. 死锁的必要条件

2. 处理死锁的方法

3.6  预防死锁

3.6.1  摒弃 “请求和保持” 条件

3.6.2  摒弃 “不剥夺” 条件

3.6.3  摒弃 “环路等待” 条件

3.8  死锁的检测与解除

3.8.1  死锁的检测

1. 资源分配图

2. 死锁定理

3. 死锁检测中的数据结构

3.8.2  死锁的解除


3.5  死锁概述

3.5.2  计算机系统中的死锁

死锁(Deadlock)的定义

一组进程中的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件。

1. 竞争资源

2. 进程推进顺序不当

3.5.3  死锁的必要条件和处理方法

1. 死锁的必要条件

若产生死锁,则一定具备上述四个条件,但具备上述四个条件不一定产生死锁。

  • 可见预防死锁的方法就是:不要同时具备上述四个条件!

1)互斥条件

规定在一段时间内,某资源只能被一个进程占用,其它请求该资源的进程必须等待,直至占有该资源的进程用毕释放。

2)请求和保持条件

进程已占有至少一个资源,又提出了新的资源申请,而该资源已被其它进程占有,此时请求进程被阻塞,但又对自己已占有的资源保持不放。

3)不剥夺条件

进程已占有的资源在使用完前不能被剥夺,只能在进程使用完时由自己释放。

4)循环等待条件

发生死锁时,必存在以下循环链:进程集合 { P0, P1, P2, ... , Pn } 中的 P0 正在等待一个 P1 占有的资源,P1 正在等待一个 P2 占有的资源,...,Pn 正在等待一个 P0 占有的资源。

2. 处理死锁的方法

从(1)到(4)对死锁的防范程度逐渐减弱,但对应的是资源利用率的提高,以及进程因资源因素而阻塞的频度下降,即并发程度提高。

3.6  预防死锁

预防死锁的方法:使四个必要条件中的第 2、3、4 条件之一不能成立,从而避免发生死锁。

至于必要条件 1,因为它是由设备的固有属性所决定的,不仅不能改变,还应加以保证。

3.6.1  摒弃 “请求和保持” 条件

系统规定,所有进程在开始运行之前,必须一次性地申请其在整个运行过程中所需的全部资源。这样,该进程在整个运行期间,便不会再提出资源要求。

避免了一部分占着茅坑不拉屎现象

  • 优点:简单、易行且安全。
  • 缺点:(1)资源被严重浪费。(2)使进程经常会发生饥饿现象。

但还是有占着茅坑不拉屎现象

3.6.2  摒弃 “不剥夺” 条件

进程是逐个地提出对资源的申请的,而非一次性提出所有申请。

当一个已经保持了某些资源的进程,提出新的资源请求而不能得到满足时,必须释放它已经保持的所有资源,待以后需要时再重新申请。

这意味着进程已占有的资源会被暂时地释放,或者说是被剥夺了!

该方法缺点很多:

  • (1)实现起来复杂;代价大:前一段工作失效,或前后工作不连续
  • (2)反复的申请和释放延迟周转时间,增加系统开销,降低系统吞吐量

3.6.3  摒弃 “环路等待” 条件

该方法规定:

  1. 对系统所有资源按类型进行线性排序,并赋予不同的序号
  2. 每个进程必须严格按照序号递增的顺序请求资源

这样,在所形成的资源分配图中,不可能再出现环路。

优点:资源利用率和系统吞吐量得到改善。

缺点:(1)序号必须相对稳定,因此限制了新设备的增加

(2)作业使用各资源的顺序和系统规定的顺序不同,需要不断释放和申请

(3)按次序申请资源的方法限制了用户简单、自主地编程

3.8  死锁的检测与解除

3.8.1  死锁的检测

当系统为进程分配资源时,若未采取任何限制性措施,则系统必须提供检测和解除死锁的手段。

1. 资源分配图

用圆圈代表一个进程,用方框代表一类资源。由于一种类型的资源可能有多个,因此用方框中的一个点代表一类资源中的一个资源。此外,请求边是进程指向方框中的点,分配边是方框中的点指向进程。

2. 死锁定理

S 为死锁状态的充分条件是:当且仅当 S 状态的资源分配图是不可完全简化的。该充分条件被称为死锁定理。

3. 死锁检测中的数据结构

3.8.2  死锁的解除

当发现有进程死锁时,常采用的两种方法是解除死锁:

1)剥夺资源。从其它进程中剥夺足够数量的资源给死锁进程,以解除死锁状态。

2)撤消进程。最简单的撤消进程的方法,是使全部死锁进程都夭折掉;或者按照某种顺序逐个地撤消进程,直至有足够的资源可用,使死锁状态消除为止。

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

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

相关文章

企业在数字化建设中,BI 处于什么位置?

对市场异常敏感的商业世界自然不会放过获取数字经济的机会,在众多企业开始进行数字化转型,通过信息化建设,部署BI来完成转型工作。 很多人都听说过BI, 但是并不太清楚BI 在IT信息化中到底处于一个什么位置?有很多的疑…

APIs --- DOM基础事件

1. 事件 事件是编程时系统内发生的动作或者发生的事情,它是用来描述程序的行为或状态的,一旦行为或状态发生改变,便立即调用一个函数。 例如:用户使用【鼠标点击】网页中的一个按钮、用户使用【鼠标拖拽】网页中的一张图片 事件…

【MySQL】外键约束和外键策略

一、什么是外键约束? 外键约束(FOREIGN KEY,缩写FK)是用来实现数据库表的参照完整性的。外键约束可以使两张表紧密的结合起来,特别是针对修改或者删除的级联操作时,会保证数据的完整性。 外键是指表…

ElasticSearch——详细看看ES集群的启动流程

参考:一起看看ES集群的启动流程 本文主要从流程上介绍整个集群是如何启动的,集群状态如何从Red变成Green,然后分析其他模块的流程。 这里的集群启动过程指集群完全重启时的启动过程,期间要经历选举主节点、主分片、数据恢复等重…

java中的SPI机制

文章目录SPI 介绍何谓 SPI?SPI 和 API 有什么区别?实战演示Service Provider InterfaceService Provider效果展示ServiceLoaderServiceLoader 具体实现自己实现一个 ServiceLoader总结在面向对象的设计原则中,一般推荐模块之间基于接口编程,…

测试开发备战秋招面试3

努力了那么多年,回头一望,几乎全是漫长的挫折和煎熬。对于大多数人的一生来说,顺风顺水只是偶尔,挫折、不堪、焦虑和迷茫才是主旋律。我们登上并非我们所选择的舞台,演出并非我们所选择的剧本。继续加油吧! 目录 1.讲一下redis和mySQL的区别? 2.讲一下…

ChatGPT让现在的软件都土掉渣了

我们家有两个娃,每次我们想要出去时订个酒店时都好麻烦。我在某程上找,我先看有没有家庭房,但家庭房很少,而且有些家庭房实际上只能睡得下两大一小。普通房间能不能睡得下四个人,那可是得查看很多信息,如床…

Redis队列Stream、Redis多线程详解(一)

Redis队列与Stream Redis5.0 最大的新特性就是多出了一个数据结构 Stream,它是一个新的强大的支持多播的可持久化的消息队列,作者声明Redis Stream地借鉴了 Kafka 的设计。 Redis Stream 的结构如上图所示,每一个Stream都有一个消息链表,将所…

Pandas 学习手册中文第二版:1~5

原文:Learning pandas 协议:CC BY-NC-SA 4.0 译者:飞龙 一、Pandas 与数据分析 欢迎来到《Pandas 学习手册》! 在本书中,我们将进行一次探索我们学习 Pandas 的旅程,这是一种用于 Python 编程语言的开源数…

Android:启动流程

Android启动流程 第一步:启动电源以及系统启动 当电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序到RAM,然后 执行 第二步:引导程序 引导程序是在Android操作系统开始运行前的一个小程序。引导程序…

如何防止设备被重复控制

1. 引言 在一个物联网的系统中,主要有三部分组成:云端、WiFi、电控。当用户在APP上控制设备时,其控制下发链路是:云端>>WIFI>> 电控。当电控收到控制指令后,执行设备控制,控制成功后&#xff…

如何使用Midjourney辅助建筑平面设计,常用的建筑平面效果图提示和使用效果展示(内附Midjourney提示词网站)

文章目录一、室内建筑平面设计1.AutoCAD图纸(别墅首层图)2.平面效果图3.三维平面透视图二、建筑室内设计1.现代简约2.波西米亚风格3.工业风格4.沿海风格5.法国风格6.现代风格7.提示增加颜色倾向8.提示中增加设计师9.其它一些尝试三、好用的Midjourney提示…

Redis 6.x哨兵模式部署(五)

目录 一、主从复架构搭建 二、哨兵模式搭建 2.1背景 2.2哨兵模式介绍 2.3 Sentinel三大工作任务 1监控(Monitoring) 2提醒(Notification) 3自动故障迁移(Automatic failover) 4核心流程 2.4 安装…

企业如何实现数字化转型?

企业如何实现数字化转型? 首先,我需要先跟各位明确,企业数字化转型中很重要的3个“先行”条件: 第一、企业一把手的眼光和格局 一把手的视野、格局、定力是最重要的因素,没有之一。能不能放下自己过去的执念与经验&a…

信息与计算科学有哪些SCI期刊推荐? - 易智编译EaseEditing

以下是信息与计算科学领域的一些知名SCI期刊推荐: Information Sciences: 该期刊是信息科学领域的重要期刊,涵盖了信息科学、计算科学、人工智能、数据挖掘、模式识别、多媒体技术、网络通信、智能系统等方面的研究。 IEEE Transactions on…

电子文件的线上存储工具,你了解多少?

信息化时代的来临,企业也纷纷跟随时代步伐进入现代化办公。信息时代最显著的特征就是纸质文件到电子文件的转变。企业一天的办公中,可能就会产出无数的电子文件,其中很多文件都是珍贵的业务经验,因此线上存储是企业需要考虑的问题…

网页解析--bs4--01

python爬虫之bs4模块(超详细) Beautiful Soup 4.4.0 文档 — Beautiful Soup 4.2.0 documentation (crummy.com) 可以看到bs4库将网页文件变成了一个soup的类型, 事实上,bs4库 是解析、遍历、维护、“标签树“的功能库。 通俗一点…

redis基础总结-常用命令

redis常用指令3. 常用指令3.1 key 操作分析3.1.1 key应该设计哪些操作?3.1.2 key 基本操作3.1.3 key 扩展操作(时效性控制)3.1.4 key 扩展操作(查询模式)3.2 数据库指令3.2.1 key 的重复问题3.2.2 解决方案3.2.3 数据库…

001:Mapbox GL加载基础的地图

第001个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载最基础的 Mapbox GL地图 。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共59行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置…

无限制翻译软件-中英互译字数无限

翻译软件是我们工作及学习中必不可少的工具,然而许多翻译软件在使用时常常会出现字数限制的问题,这使得用户在处理长文本和大量文本时变得十分麻烦。如果你也遇到了类似的问题,那么哪个翻译软件不限制字数将为您带来全新的翻译体验。 以下是我们的哪个翻…