计算机操作系统——死锁(产生的必要条件与处理死锁的四个关卡)

计算机操作系统——死锁

前言:死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。如果死锁发生,会浪费大量的系统资源,甚至会导致系统崩溃。

关于死锁的结论:

  1. 参与死锁的进程最少是两个
  2. 参与死锁的所有进程都在等待资源
  3. 参与死锁的进程是当前系统中所有进程的子集

一、死锁产生的必要条件

在这里插入图片描述
1. 互斥条件
进程对所分配到的资源进行排它性使用,即在一段时间内,某资源只能被一个进程所占用。如果此时还有其他进程请求该资源,则请求进程只能等待,直至占有该资源的进程用完并释放资源。

2. 请求和保持条件
进程已经保持了至少一个资源,但又提出新的资源请求,而该进程已经被其他进程占有,此时进行请求的进程将被阻塞,进入阻塞队列,但是对自己已经获得的资源保持不放。

3. 不可抢占条件
进程已获得的资源在未使用之前不能被抢占,只能在进程使用完时由自己释放。

4. 循环等待条件
在发生死锁时,必然存在一个进程–资源的循环链,即进程集合{P0,P1,…,Pn}中的P0正在等待一个P1占用的资源,P1正在等待P2占用的资源,…,Pn正在等待已被P0占用的资源。


二、处理死锁的方法

1. 预防死锁

(1)破坏“请求和保持”条件
(2)破坏“不可抢占”条件
可剥夺资源:即当某进程新的资源未满足,释放已占有的资源
(3)破坏“循环等待”条件
资源有序分配法:系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反。


2. 避免死锁

利用银行家算法避免死锁。Dijkstra的银行家算法,原本是为银行系统设计的,以确保银行在发放现金贷款时,不会发生不能满足所有客户需要的情况。
为实现银行家算法,每一个新进程在进系统时,它必须申明在运行过程中,可能需要每种资源类型的最大单元数目,其数目不应超过系统所拥有的资源总量。当进程请求一组资源时,系统必须首先确定是否有足够的资源分配给该进程。如果有,再进一步运算将资源分配给该进程后,是否会使系统处于不安全状态。如果不会,才将资源分配给该进程。
在这里插入图片描述

在这里插入图片描述

银行家算法中的数据结构:
(1)可利用资源向量Available
代表可利用的资源数目。
(2)最大需求矩阵Max
代表各进程对各类资源的最大需求。
(3)分配矩阵Allocation
代表各进程当前已分配的各类资源数目。
(4)需求矩阵Need 代表各进程尚需要的各类资源数目。最大需求矩阵减去分配矩阵(Need[i,j] = Max[i,j] - Allocation[i,j])

银行家算法的过程:
在这里插入图片描述
银行家算法例题:
在这里插入图片描述
在这里插入图片描述


3. 检测死锁

为了能对系统中是否发生了死锁进行检测,在系统中必须:保存有关资源的请求和分配信息;提供一种算法,它利用这些信息来检测系统是否已经进入死锁状态。
在这里插入图片描述
安全性算法:
设置两个向量
a.工作向量Work:提供给进程继续运行所需的各类资源数目。它含有m个元素,在安全算法开始时Work = Available
b.Finash:它表示系统是否有足够的资源分配给进程,使之运行完成。开始时,先令Finish[i] = false;当有足够资源分配给进程时,再令Finish[i] = true;


4. 解除死锁

当发现有进程死锁后,便应立即把它从死锁状态中解脱出来,常用的方法:
(1)剥夺(抢占)资源法:从其它进程剥夺足够数量的资源给死锁进程,以解除死锁状态。
(2)撤销(终止)进程法:可以直接撤销死锁进程或撤销代价最小的进程,直至有足够的资源可用,死锁状态消除为止;所谓的代价是指优先级、运行代价、进程的重要性和价值等。
(3)进程回退法:需要设置还原点,让一个或多个死锁进程回退到足够避免死锁的地步。
在这里插入图片描述

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

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

相关文章

科学难题的形成

来源:肖建华科学网博客传统上,把科学理论分为两类:唯象性科学理论和哲学性科学理论。大致而言,工程科学是以具体现象类来划分学科,此类学科的理论一般称为唯象性理论。而把各学科的共性特征抽象出来作为研究对象而建立…

冯·诺依曼计算机特点

冯诺依曼计算机特点 冯诺依曼,20世纪最重要的数学家之一。在现代计算机、博弈论、核武器和生化武器等众多领域内有杰出建树的最伟大的科学全才之一,被后人称为“计算机之父”和“博弈论之父”。 一、冯诺依曼计算机结构(以运算器为中心&…

计算机操作系统——经典进程的同步问题

计算机操作系统——信号量机制与经典进程的同步问题 信号量机制 随着发展,信号量从整型信号量经记录型信号量,进而发展为“信号量集”机制。 一般来说,信号量的值与相应的资源的使用情况有关。 信号量的值仅由P、V操作改变。 信号量的初值…

2020年度全球人工智能十大事件

该文章内容转载自战略前沿技术当前,新一代人工智能技术在全球蓬勃兴起,迅猛发展,与大数据、区块链、5G等新技术相互融合、相互因应,为经济社会发展尤其是数字经济发展注入新动能,正在深刻改变社会生产生活方式。与此同…

当贝叶斯,奥卡姆和香农一起来定义机器学习

来源:数学中国【导读】当贝叶斯、奥卡姆和香农一起给机器学习下定义,将统计学、信息理论和自然哲学的一些核心概念结合起来,我们便会会发现,可以对监督机器学习的基本限制和目标进行深刻而简洁的描述。令人有点惊讶的是&#xff0…

eclipse中下载spring-tool-suite插件遇到的问题

eclipse中下载spring-tool-suite插件遇到的问题 我的eclipse的版本4.7.0,接下来以下载我的eclipse的对应STS版本3.8.4为例,讲一下遇到的问题。不同版本的eclipse对应不同的spring-tool-suite,具体的版本对应可以去其他的博客中寻找&#xff…

python - 内置函数

enumerate 将一个可迭代/可迭代对象变成enumerate类型 利用for循环可以对enumerate类型获得索引和值 1 lis (星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期七) 2 ret enumerate(lis, 1) # enumerate 可以接受第二个参数, 用于指定索引起始值 3 4 fo…

2021年,AI有潜力改善农业的十种路径

来源:Forbes作者:Louis Columbus编译:科技行者普华永道指出,基于物联网的农业(IoTAg)监控已经成为联网智能农业领域发展最快的技术领域,市场总额到2025年预计将增长至45亿美元。根据BI Intellig…

计算机组成原理——总线系统总结

计算机组成原理——总线系统总结 一、总线的概念: 总线是构成计算机系统放入互联机构,是多个系统功能部件之间进行数据传送的公共通路。借助于总线连接,计算机在各个系统功能部件之间实现地址、数据和控制信息的交换,并在争用资…

科学家打造全套人工神经系统 帮助瘫痪病人重新控制身体

Photo: Nathaniel Welch来源: IEEE电气电子工程师Motion Restored: Luke Tynan, who was paralyzed in 2017 by a spinal cord injury, demonstrates the wearable system that enables him to control his arm and hand. Sensors on the arm register his intentio…

存储器容量扩展——位扩展、字扩展

存储器(二)——存储容量扩展 前言:(基本概念) 存储空间:CPU决定存储器:用户需求决定(4G,8G)(8G的存储器1各芯片能否完成用户需求?如…

海明码构造及纠错

计算机组成原理——海明码的构造及纠错 海明码(又称为汉明码)是具有一位纠错能力的编码。 信息位:发送用户端想要发送的信息序列,彼此独立,互不相关,最终交给接收端。 检测位:为了使信息码元产…

机器学习对抗攻击是一颗“定时炸弹”

来源 | AI前线作者 | Ben Dickson译者 | Sambodhi策划 | 刘燕随着机器学习的迅速普及,科技界必须制定一份保证人工智能系统免遭对抗攻击的路线图。否则,对抗机器学习将会是一场灾难。如果你一直在关注有关人工智能的新闻,你可能已经听说过或看…

操作系统基本特性——并发、共享、虚拟、异步

操作系统的基本特性——并发、共享、虚拟、异步 前言:操作系统(Operating System,OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。主要作用是管理好这些设备,提高它们的利用率和吞吐量&…

ASP.NET MVC 扩展HtmlHelper类为 js ,css 资源文件添加版本号

写在前面 在项目部署当中会需要更新 css 文件或 js 等资源文件,为了避免由于浏览器缓存的原因无法加载新的 css 或 js ,一般的做法是在资源文件的后面加上一个版本号来解决,这样浏览器就会去服务器下载新的资源文件。 如果某个 css 文件被多个…

生物学哲学:科学哲学的新视野

来源:自然辩证法研究 2003年第4期作者:周建漳在未经言明的情况下,“科学”一词通常总是指向“自然科学”,而在传统“科学哲学”的视野中,“科学”则又似乎“不言自明”地指向“数理科学”(注:所…

计算机组成原理——指令与数据的寻址方式

计算机组成原理——指令与数据的寻址方式 前言: 指令的定义:计算机执行某种操作的命令。从计算机组成的层次结构来看,计算机的指令有微指令,机器指令,宏指令之分。 微指令:微程序级的命令,它属…

IBM被曝拟出售昔日明星业务Watson Health,10年医疗梦就此破碎?

来源:AI前线 整理:刘燕传 IBM 拟出售 Watson Health 业务据《华尔街日报》报道,IBM 或将出售 IBM Watson Health 业务。华尔街日报援引知情人士称,随着公司新任 CEO 开始精简公司规模,并在混合云计算领域发力&#xf…

全球光刻机龙头是怎样炼成的

来源:公众号「驭势资本」半导体芯片制作分为IC设计、IC制造、IC封测三大环节,光刻作为IC制造的核心环节,其主要作用是将掩模版上的芯片电路图转移到硅片上。由于光刻的工艺水平直接决定芯片的制程水平和性能水平,光刻成为IC制造中…

页面置换算法——最佳置换算法、最近最少使用算法、先进先出算法、时钟置换算法

计算机操作系统——页面置换算法 根据中国大学MOOC计算机操作系统(电子科技大学)而写. 如果自己要设计页面置换,要根据什么原则来设计?我们首先想到的是存储器的局部性原理(时间局部性、空间局部性) Page removed should be the …