第六章—并发性:死锁和饥饿【计算机操作系统】

阿龙的学习笔记---《操作系统 - 精髓与设计原理》笔记---第六章:并发性:死锁和饥饿 1. 死锁原理 死锁是一组进程,在互相竞争资源或者互相通信时,发生的永久性阻塞。每个进程都占用某个资源,并且在等待另一个资源。 死锁的条件: 互斥:一次只有一个进程能够占有一个资源。 占有且等待:在等待资源时,继续占有资源。 不可抢占:不能抢占其他进程以持有的资源。 循环等待:存在闭合的进程链。每个进程至少占有下一个进程的所需资源。 2. 死锁预防 破坏四个条件之一,则死锁无法出现。 互斥:无法破坏。 占有且等待:一次性申请所有资源。 不可抢占:变为可抢占资源。 循环等待:给资源排序,只能按 阅读详情

6.1 给出可重用资源和可消费资源的例子。

可重用资源:处理器,I/O通道,主存和辅存,设备以及诸如文件,数据库和信号量之类的数据结构。

可消费资源:中断,信号,消息和I/O缓冲区中的信息。

6.2 可能发生死锁所必须的三个条件是什么?

互斥,占有且等待,非抢占。

6.3 产生死锁的第4个条件是什么?

循环等待。

6.4 如何防止占有且等待的条件?

可以要求进程一次性地请求所有需要的资源,并且阻塞这个资源直到所有请求都同时满足。

6.5 给出防止无抢占条件的两种方法。

第一种,如果占有某些资源的一个进程进行进一步资源请求被拒绝,则该进程必须释放它最初占用的资源,如果有必要,可再次请求这些资源和另外的资源。

第二种,如果一个进程请求当前被另一个进程占有的一个资源,则操作系统可以抢占另一个进程,要求它释放资源。

6.6 如何防止循环等待条件?

可以通过定义资源类型的线性顺序来预防。如果一个进程已经分配到了R类型的资源,那么它接下来请求的资源只能是那些排在R类型之后的资源类型。

6.7 死锁避免,检测和预防之间的区别是什么?

死锁预防是通过间接地限制三种死锁必要条件的至少一个或是直接地限制循环等待的发生来避免死锁的出现。死锁避免允许可能出现的必要条件发生,但是采取措施确保不会出现死锁的情况。而死锁检测允许资源的自由分配,采取周期性的措施来发现并处理可能存在的死锁情况。

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第二章 《操作系统原理》课后习题解答——第二章 阅读详情

相关推荐

java核心基础 第六章 锁

Java锁的核心概念和原理涉及多个层面,包括语言级别的、库级别的显式锁以及JVM内部的优化机制。锁的正确使用需要开发者对线程模型和资源竞争有深入理解。希望本文对Java锁的深入解析能为读者提供清晰的思路和实践指导。在实际开发中,选择合适的锁类型并优化其使用,将显著提升并发程序的性能和安全性。

yjy000的博客 1144

操作系统饥饿现象_操作系统中的饿死现象怎样理解?

什么是进程的饥饿和饿死?在一个动态系统中,资源请求与释放是经常性发生的进程行为.对于每类系统资源,操作系统需要确定一个分配策略,当多个进程同时申请某类资源时,由分配策略确定资源分配给进程的次序。 资源分配策略可能是公平的(fair),能保证请求者在有限的时间内获得所需资源;资源分配策略也可能是不公平的(unfair),即不能保证等待时间上界的存在。 在后一种情况下,即使系统没有发生死锁,某些进程也...

weixin_39853843的博客 8339

【技术纵览】行为识别前沿模型演进:从CNN到多模态大模型

本文全面解析了行为识别技术从CNN到多模态大模型的演进历程,重点介绍了SlowFast、TimeSformer、VideoMAE和InternVideo等SOTA模型的核心创新与应用实践。通过对比分析各代模型在Kinetics-400等数据集上的表现,揭示了自监督学习和多模态融合如何推动行为识别准确率突破85%,并探讨了工业部署中的技术选型策略与优化方向。

weixin_29169505的博客 153

读写锁饥饿问题

读写锁设计

多头注意力探索Now 1305

工业4.0 底层逻辑

工业4.0 的概念已经被滥用了,它与物联网,工业物联网等概念一样,几乎什么都往里面装。演变成了一句口号和愿景。许多人并不清楚工业4.0的底层逻辑到底是什么?如何遵循工业4.0 的思想构建新一代智能制造系统?并没用清晰地展示工业4.0的技术路线图。

姚家湾博客 1994

【Labview与SQL Server互联(labview可以引用数据库)】

Labview与SQL Server互联

Magize的博客 3585

操作系统——死锁和饥饿

操作系统——死锁和饥饿 1、概念 死锁:如果一组进程中的每一个进程都在等待由该进程中的其它进程才能引发的事件,那么该组进程是死锁的。 饥饿:指系统不能保证某个进程的等待时间上界,从而使该进程长时间等待,当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。当饥饿到一定程度的进程所赋予的任务即使完成也不再具有实际意义时称该进程被饿死。 2、产生原因 死锁:源于多个程序对资源的争夺,不仅对不可抢占资源进行争夺时会引起死锁,而且对可消耗资源进行争夺时,也会引起死锁。 饥饿:如果一个线程因为处理器时间全

今人不见古时月 6020

手把手教你用STM32CubeMX配置I3C通信(含动态地址分配实战)

本文提供了一份基于STM32CubeMX配置I3C通信的实战指南,重点讲解了动态地址分配的实现步骤。通过详细的工程配置、从设备枚举、CCC命令使用及数据读写示例,帮助开发者快速掌握这一高效通信协议,以替代传统的I2C或SPI接口,满足多传感器连接与低功耗设计需求。

c8d9e0f1的博客 543

读写锁饥饿问题解决方案之StampedLock

引言 ReentrantReadWriteLock可以让多个读线程同时持有读锁(只要写锁未被占用),而写锁是独占的,所以在读多写少的场景上可以提高吞吐量,比如hdfs文件系统。但是,读写锁如果使用不当,很容易产生“饥饿”问题,比如在读线程非常多,写线程很少的情况下,很容易导致写线程“饥饿”,虽然使用“公平”策略可以一定程度上缓解这个问题,但是“公平”策略是以牺牲系统吞吐量为代价的。 导致写线程饥饿的情况:当线程 A 持有读锁读取数据时,线程 B 要获取写锁修改数据就只能到队列里排队。此时又来了线程 C

breakout_alex的博客 4430

从FreeCAD到BIMBase:PlaneGCS约束求解器的移植使用指南

本文为BIMBase平台的开发者提供了一份详细的PlaneGCS几何约束求解器移植与集成指南。文章深入探讨了如何从FreeCAD中提取PlaneGCS核心代码,并将其适配到BIMBase的C++二次开发环境中,重点解决了内存管理、数据模型桥接、约束抽象以及性能调优等关键问题,旨在帮助开发者构建稳定高效的参数化设计模块。

weixin_29213525的博客 320

Unity中5自由度机械臂运动控制与夹爪交互仿真实践

本文详细介绍了在Unity中实现5自由度机械臂运动控制与夹爪交互仿真的完整流程。从模型导入、物理组件配置到关节运动控制算法(包括逆运动学IK),再到夹爪抓取逻辑和工业分拣案例实战,提供了可落地的代码示例与性能优化方案,助力开发者快速掌握机械臂仿真核心技术。

weixin_29021757的博客 446

操作系统--课堂问答笔记25--习题答案

[5-7] 1、什么是“饥饿”现象?哪些磁盘调度算法会导致“饥饿”现象发生? 答:按照某种磁盘调度算法,可能会导致有些磁道总是得不到的访问(可能磁道优先级低),这就是“饥饿”现象。最短寻道时间优先(SSTF)算法会导致“饥饿”现象发生,因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必然优先满足(也就是距离磁头当前所在磁道的距离较远的磁道总是得不到访问)。 2、简述FCFS、SSTF、SCAN、CSCAN算法的基本原理(NStepSCAN和FSCA

三桥君 | 人工智能领域专家 2563

嵌套学习 (Nested Learning, NL):赋予AI持续学习能力的革命性范式

嵌套学习(Nested Learning, NL)的核心哲学在于彻底颠覆传统深度学习中将模型架构(Architecture)与优化算法(Optimization)视为两个独立组件的“扁平化”视角 。传统方法通常将神经网络的结构设计和其训练过程分离开来,模型架构是预先定义好的静态蓝图,而优化算法(如SGD、Adam)则是一个外部的、统一的规则引擎,负责在训练期间调整模型参数 。这种分离的视角隐藏了模型内部不同组件之间复杂的梯度流和动态更新过程,将整个学习系统视为一个单一层次的优化问题。然而,嵌套学习范式提出,

步子哥的博客 488

【OS】操作系统课程笔记 第六章 并发性——死锁

学习操作系统课程所做的笔记,这是第六单元。

Summerison的博客 479

从零开始学 AUTOSAR:深入浅出 SAE J1939 诊断通信管理器(J1939Dcm)深度完整版

SAE J1939 是美国汽车工程师学会制定的重型车辆 CAN 总线通信标准,覆盖卡车、客车、工程机械、农机、船舶等,是商用车领域的 “通用语言”。基于CAN 2.0B 扩展帧(29 位 ID)(车规主流)PGN(参数组号)+ SPN(可疑参数号)核心标准:J1939-21:数据链路层(CAN 帧格式、地址声明)J1939-71:应用层(普通信号、报文)诊断层(核心!J1939Dcm 依据)J1939-81:网络管理(地址管理、节点检测)

getusushu的博客 117

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

操作系统复习 五、六章

操作系统复习 五、六章

Go_ahead_forever的博客 1015

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

操作系统教程第六版——第六章笔记(1)

操作系统

m0_51273315的博客 1962

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

The Little Book of Semaphores 信号量小书 第六章 不那么经典的问题 6.2 男女通用的浴室问题

第六章 不那么经典的问题   6.2 男女通用的浴室问题 当我的一个朋友离开她在科尔比学院教物理学的职位并在施乐公司找到一份工作时,我写了这个问题。【后来我了解到安德鲁斯的并发编程[1]中出现了一个几乎相同的问题】 她在一个混凝土隔间的地下室里工作,而最近的女士浴室要上两层楼。 她向Uberboss提议,他们将他那一层楼的男士浴室改成男女通用的浴室,有点像Ally McBeal的。 Ub...

booksyhay的专栏 1236

操作系统 左万利

1.3 操作系统的特性: 1、并发性 宏观上,多个程序同时向前推进; 与并行:多处理器操作系统,多CPU,并行操作系统; 2、共享性 资源共享:在操作系统的控制下,操作系统与多个用户程序共用系统中的各种资源 的共享; 3、 异步性 宏观上有 同时运行多个程序,他们是交替执行的; 交替的切换点是中断; 中断使用户程序切换到操作系统,嵌套中断使一切操作系统切换到另一段操作系统,而中断的发生时刻不确定; 所以操作系统运行轨迹是异步的、不可预知的; 4、虚拟性 virtual 利用某种技术,把一个物理实体变为若干个

weixin_44919162的博客 622

操作系统期末复习提纲汇总

期末复习提纲,有强针对性,请自辩仅个人作保留,不定时删除参考教材:《计算机操作系统》沈晓红版一、单项选择题(15题,总分30分)二、判断题(10题,总分10分)三、选择填空(10空,总分10分)四、应用题(3题,总分20分)五、综合题(3题,总分30分)

Tassel_YUE的博客 1749

操作系统精髓与原理--复习题答案整理

学习一章便更新一章,亲自敲一遍助于记忆。 操作系统精髓与原理--复习题答案第一章 计算机系统概述操作系统概述 第一章 计算机系统概述 1.1 列出并简要地定义计算机的四个组成部分。 主存储器:存储数据和程序; 算术逻辑单元:能处理二进制数据; 控制单元:解读存储器中的指令并且使他们得到执行; 输入/输出设备:由控制单元管理。 1.2 定义处理器寄存器的两种主要类别。 用户可见寄存器:优先使用这些寄...

sumisu666的博客 8382

操作系统复习简要版(包含重点与习题)

文章目录第一章 操作系统概述1.1.3 操作系统的定义1.3 操作系统的特性1.4 操作系统的分类(简单理解)1.6 操作系统的界面形式(知道有几种)五种:1.7 操作系统的运行机理(知道中断驱动)第二章 进程、线程与作业2.1 多道程序设计2.2 进程的引入(进程相关 进程(执行单位)、线程、作业概念理解,区别)第三章 中断与处理器调度**处理机调度**:习题第四章 互斥、同步与通信进程互斥的实现信号量与PV操作习题第五章 死锁与饥饿死锁定义:死锁的条件死锁的处理方法(预防、避免、检测、恢复)习题第六章

m0_46233342的博客 515

操作系统期末复习考点(1~6)

第一章 计算机系统概述 中断 分为程序中断、I/O中断、时钟中断、硬件失效中断 高速缓存 Cache对于操作系统不可见。 设计动机: (1)每个指令周期,处理器至少访问内存一次 (2)处理器速度远快于内存访问 (3)局部性原理,在内存和处理器之间提供一个容量小速度快的存储器 ** 直接内存存取(DMA)** I/O操作:可编程I/O、中断驱动I/O、DMA 局部性原理 时间局部性原理: 空间局部性...

0nc3的博客 375

操作系统知识点

第一章:概论 操作系统的主要特性 并发性:多个事件或活动在同一时间间隔(时间段)内发生。 并行性:两个或两个以上事件或活动在同一时刻(时间点)发生。 注意:并行性是并发性的特例。 共享性: 共享指操作系统中的资源可被多个并发执行的进程所共同使用,可分成两种资源共享方式: 互斥访问:系统中某些资源同一时间段内只允许一个进程访问 同时访问:系统中某些资源同一时间段内只允许多个进程访问 异步性/随机性:可能导致与时间有关的错误 虚拟性:一种管理技术 例子:多道程序设计和分时使用CPU技术,

m0_50844619的博客 879

操作系统期末提纲

操作系统期末提纲

Go_ahead_forever的博客 706
上一篇: 第五章—并发性:互斥和同步【计算机操作系统】
下一篇: 第七章—内存管理【计算机操作系统】
蓝莓派Alex
博客等级 码龄15年 147粉丝 49原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值