操作系统之《死锁与银行家算法》【知识点+详细解题过程】

知识点:

1、什么是死锁?(别名"三角恋",我喜欢你你喜欢他他喜欢我,明明都单身但是就是‘占有’不了)

一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象称为进程死锁,这一组进程称为死锁进程。

2、产生死锁的原因

系统资源不足
进程申请顺序不当
进程推进顺序非法
PV操作使用不当

3、死锁产生的必要条件

产生死锁的必要条件(同时满足)
互斥临界资源为互斥使用
不可剥夺(非抢占)一旦占有就直到使用完毕,由进程释放
占有和等待进程在请求资源得不到满足而等待时,不释放已占有资源
环路(循环等待)各进程对资源的占有和请求形成环路

 4、死锁的处理方法

(1)预防死锁:通过某些限制条件的设置,去破坏产生死锁的四个必要条件;

(2)避免死锁:在资源的动态分配过程中,用某种方法去防止系统进入不安全状态;

(3)检测死锁:及时检测死锁的发生,并确定与之相关的进程、资源,从而采取措施清除死锁;

(4)解除死锁:撤消或挂起某些进程以回收一些资源,用于解脱另一些处于死锁的进程。

5、银行家算法:

(1)基本思想:

在进程提出资源申请时,预先判断这次分配是否会导致系统进入不安全状态,如果会进入不安全状态,就暂时不答应这次请求,让该进程先阻塞等待。

(2)银行家算法数据结构:

剩余资源数组及三个基本矩阵
剩余资源数组Available=[R1,R2,…,Rn]
最大资源需求矩阵Max 资源(已)
分配矩阵Allocation
剩余资源需求矩阵Need

 (3)算法思路:

  • 第一步判断,请求是否小于现有可用资源
  • 第二步判断,请求是否小于该进程所需资源
  • 第三步,在满足前两步的基础上,执行安全性算法,拟分配,找出安全序列

  • 第四步,回答,若安全便列出安全序列,若不安全则指出哪一步不满足

 

题练:

1、在银行家算法中,若出现下述资源分配情况:

 试问:(1)该状态是否安全?
  (2)如果进程P2提出请求Request(0,2,2,2)后,系统能否将资源分配给它?

(1)安全。
(2)不能分配,因为在试分配给P2后,Available为(1,4,0,0),找不到满足状态为False且Need<Available的进程。

2、系统有四类资源A、B、C、D,数量分别是4、11、14、12。有5个进程P0,P1、P2、P3、P4。T0时刻系统状态如下: 

问 (1)T0时刻系统可用资源数Available(A、B、C、D)各是多少?
(2)T0时刻就是否为安全状态,给出安全序列。 
(3)T0时刻,P2发出资源请求: Request(0,4,3,4),能否分配,系统如何处理?

(1)T0时刻系统可用资源数Available为(2,6,2,3).
(2)T0时刻为安全状态,安全序列为(P4,P0,P2,P1,P3).

(3)不能分配,因为P2的请求资源中C资源超过了所需的C资源.
Request(0,4,3,4),而T0时刻,P2进程的所需资源为Need(0,6,2,5)

3、某系统有A、B、C、D四类资源可供五个进程P1.P2.P3.P4.P5共享。系统对这四类资源的拥有量为:A类14个、B类13个、C类4个、D类12个。在T0时刻,进程对资源的需求和分配情况如下表所示。

问:(1)T0时刻系统可用资源数Available(A、B、C、D)各是多少?

(2)判断T0时刻系统是否处于安全状态(要有算法过程)。若是,给出进程的安全序列,要求给出产生进程安全序列的详细过程。
(3)P1提出资源请求Request1(0、3,0,4)是否可进行分配,为什么?

(1)T0时刻,可用资源Available(A,B,C,D)各为(3,1,2,6)
(2)T0时刻处于安全状态,安全序列为P4,P3,P0,P1,P2。
(3)不能进行分配,因为P1的请求资源中的B资源超出了可用的资源。
RequestP1(0,3,0,4)> Available(3,1,2,6)

4、假定系统有进程集合(P0,Pl,P2,P3,P4),资源集合为(A,B,C,D),资源总数量分别为(14,3,14,12) 假定某时刻T0系统的状态如表所示。

问:(1)T0时刻系统可用资源数Available(A、B、C、D)各是多少?
(2)T0时刻就是否为安全状态,给出安全序列。 
(3)T0时刻,P3: Request(1,0,1,0),系统如何处理?能否分配?

(1)T0时刻系统可用资源数Avaiable(A,B,C,D)为(2,1,2,6)
(2)T0时刻为安全状态,安全序列为(P3,P1,P2,P0,P4)
(3)T0时刻,可以分配资源给进程P3,安全序列为P3,P1,P2,P0,P4。

5、假定系统有进程集合(Po,Pl,P2,P3,P4),资源集合为(A,B,C),资源数量分别为(10,8,7)。假定某时刻系统的状态如表所示。

试给出进程的剩余请求矩阵,并判断当前系统是否处于安全状态。若是,给出进程的安全序列。要求给出产生进程安全序列的详细过程。

(1)剩余矩阵(Need):

        A  B   C   
P0   7   5   3
P1   1   2   2
P2   6   1   0
P3   0   2   1
P4   4   2   2

(2)T0时刻处于安全状态,安全序列为P3,P1,P0,P2,P4

(3)详细过程如图所示。

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

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

相关文章

“AI+”时代,群核科技进化成了家居设计打工人理想的样子

6月&#xff0c;2024世界智能产业博览会上&#xff0c;人工智能大模型展团以“AI大模型驱动新质生产力”为主题&#xff0c;各家企业纷纷提到了基于不同行业场景的应用。 这透露出当前的行业发展趋势强调大模型落地核心行业&#xff0c;产生业务价值。其中&#xff0c;“AI图像…

软考《信息系统运行管理员》-1.4 常见的信息系统

1.4 常见的信息系统 常见的信息系统综述 财务系统 财务信息系统会计信息系统 办公自动化系统业务处理系统生产管理系统ERP系统客户关系管理系统人力资源系统 会计信息系统 主要任务是保证记账的正确性。 订单处理子系统库存子系统会计应收/应支系统总账子系统 财务信息系…

ElementUI样式优化:el-input修改样式、el-table 修改表头样式、斑马格样式、修改滚动条样式、

效果图&#xff1a; 1、改变日期时间组件的字体颜色背景 .form-class ::v-deep .el-date-editor { border: 1px solid #326AFF; background: #04308D !important; } .form-class ::v-deep .el-date-editor.el-input__wrapper { box-shadow: 0 0 0 0px #326AFF inset; } // 输入…

什么软件可以做计划 能做待办计划的app

在快节奏的现代生活中&#xff0c;做计划已成为许多人提高效率、管理时间的重要方法。无论是学生安排学习进度&#xff0c;还是职场人士规划工作任务&#xff0c;一份清晰的计划都能帮助我们更好地掌控生活节奏&#xff0c;实现目标。 选择一款好用的待办软件来做计划&#xf…

Google发布Gemma 2轻量级开放模型 以极小的成本提供强大的性能

除了 Gemini 系列人工智能模型外&#xff0c;Google还提供 Gemma 系列轻量级开放模型。今天&#xff0c;他们发布了 Gemma 2&#xff0c;这是基于全新架构设计的下一代产品&#xff0c;具有突破性的性能和效率。 Gemma 2 有两种规格&#xff1a;90 亿 (9B) 和 270 亿 (27B) 个参…

【CV炼丹师勇闯力扣训练营 Day13:§6二叉树1】

CV炼丹师勇闯力扣训练营 代码随想录算法训练营第13天 二叉树的递归遍历 二叉树的迭代遍历、统一迭代 二叉树的层序遍历 一、二叉树的递归遍历&#xff08;深度优先搜索&#xff09; 【递归步骤】 1.确定递归函数的参数和返回值&#xff1a;确定哪些参数是递归的过程中需要处理…

Oracle中常用内置函数

一、字符串函数 CONCAT(s1, s2)&#xff1a;连接两个字符串s1和s2。 SELECT CONCAT(Hello, World) FROM DUAL-- 结果&#xff1a;Hello World --或者使用 || 操作符 SELECT Hello || World FROM DUAL -- 结果&#xff1a;Hello World INITCAP(s)&#xff1a;将字符串s…

spring boot (shiro)+ websocket测试连接不上的简单检测处理

1、用前端连接测试的demo一切正常&#xff0c;但是到了项目中连接不上了 一开始以为是地址错&#xff0c;但是换了apifox测试也是不可以。 2、考虑是shiro进行了拦截了&#xff0c;所以就访问不到了地址&#xff0c;那么就放行。 3、再次用apifox测试&#xff0c;成功了。 当然…

PD快充诱骗芯片工作原理,USB-C充电器出不来电压是什么原因?

一般使用Type-C接口的充电器基本上都是采用新的快充协议——PD快充协议&#xff0c;它不同于以前的USB-A的QC协议&#xff0c;这种协议&#xff0c;默认是没有快充电压输出的&#xff0c;VBUS和GND是0V。 所以&#xff0c;我们可以使用电阻的方式&#xff08;电流小&#xff09…

金融科技如何以细颗粒度服务提升用户体验与满意度

在金融科技迅速发展的当下&#xff0c;各种技术手段被广泛应用于提升用户体验与满意度。这些技术手段不仅提供了更为精准、个性化的服务&#xff0c;还通过优化操作流程、提升服务效率等方式&#xff0c;显著改善了用户的金融生活。以下将详细探讨金融科技如何运用这些技术手段…

算法力扣刷题记录六【203移除链表元素】

前言 链表篇&#xff0c;开始。 记录六&#xff1a;力扣【203移除链表元素】 一、数据结构——链表 来源【代码随想录】&#xff0c;总结&#xff1a; &#xff08;1&#xff09;线性结构。内存地址不连续&#xff0c;通过指针指向串联一起。 &#xff08;2&#xff09;链表类…

PacBio or Nanopore:测序技术简单对比

前言 在基因组学和生命科学领域&#xff0c;追求知识的旅程不断演变&#xff0c;由揭示DNA和RNA奥秘的技术创新推动。我们熟知的两大测序技术——PacBio和Nanopore&#xff0c;正位于这一领域的前沿。这些由 Pacific Biosciences 和 Oxford Nanopore Technologies 分别开发的先…

实力认可!安全狗受聘成为福建省网信系统2024年度网络安全技术支撑单位

6月6日&#xff0c;福建省委网信办组织召开福建省网信系统2024年度网络安全技术支撑单位座谈会。 作为国内云原生安全领导厂商&#xff0c;安全狗也受邀出席此次活动。 省委宣传部副部长、省委网信办主任、省互联网信息办公室主任张远出席会议并颁发支撑单位证书。安全狗凭借出…

App推广新选择:Xinstall专属地址推广,让你的品牌瞬间引爆市场!

在移动互联网时代&#xff0c;App的推广与运营成为了每个开发者必须面对的重要课题。然而&#xff0c;随着市场竞争的日益激烈&#xff0c;如何让自己的App在众多竞争者中脱颖而出&#xff0c;成为了每个开发者最为关注的问题。今天&#xff0c;我们将为大家介绍一款能够帮助你…

浅谈Mysql Innodb存储引擎

一、Mysql整体架构 二、MySQL 5.7 支持的存储引擎 类型 描述 MyISAM 拥有较高的插入、查询速度&#xff0c;但不支持事务 InnoDB 5.5版本后Mysql的默认数据库&#xff0c;5.6版本后支持全文索引&#xff0c;事务型数据库的首选引擎&#xff0c;支持ACID事务&#xff0c;支…

深入探索Java开发世界:Redis~类型分析大揭秘

文章目录 深入探索Java开发世界&#xff1a;Redis~类型分析大揭秘一、数据结构类型二、分布式锁类型三、事物命令类型四、事物三大特性类型 深入探索Java开发世界&#xff1a;Redis~类型分析大揭秘 Redis数据库基础知识&#xff0c;类型知识点梳理~ 一、数据结构类型 Redis是一…

Vue项目生产环境的打包优化

Vue项目生产环境的打包优化 前言 在这篇文章我们讨论Vue项目生产环境的打包优化&#xff0c;并按步骤展示实际优化过程中的修改和前后对比。 背景 刚开始的打包体积为48.71M 优化 步骤一&#xff1a;删除viser-vue viser-vue底层依赖antv/g2等库一并被删除&#xff0c;…

【selenium 】操作元素

操作元素 元素操作鼠标操作键盘操作 元素操作 元素操作示例清空输入框clear()deiver.find_element_by_id(“username”).clear()输入文字send_keys()deiver.find_element_by_id(“username”).send_keys(‘zs’)元素点击 click()deiver.find_element_by_id(“login”).click()…

720漫游快速入门

720云全景漫游制作工具自2014年8月上线后&#xff0c;为数十万创作者提供全景图片&全景视频&高清矩阵上传、编辑、分享一站式软件服务&#xff0c;获得众多创作者的青睐与认可&#xff0c;同时也承载了创作者越来越多的期望&#xff0c;为了给大家提供更灵活多样的功能…

【Linux】动/静态库的创建和使用

目录 一、动/静态库的概念回顾&#xff1a; 二、动态库与静态库的区别&#xff1a; 三、静态库的创建与使用&#xff1a; 1、Linux静态库命名规则&#xff1a; 2、静态库的创建和使用&#xff1a; 四、动态库的创建与使用&#xff1a; 1、Linux动态库命名规则&#xff1…