版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统原理专题进程同步与死锁操作系统原理专题授课时间2026年课程导览01并发之困进程并发执行与同步需求02同步利器信号量、管程等同步机制03经典模型生产者消费者等经典问题04死锁迷局死锁成因与必要条件05破局之道死锁处理四大策略06融会贯通综合案例与体系梳理SECTION01并发之困并发无序则数据失真从进程并发执行说起并发执行带来的新问题并发提升了效率,也埋下了混乱的种子多道程序环境下,进程宏观并发、微观串行,执行顺序由调度决定、不可预测并发特征3项宏观并发多进程同时推进微观串行单CPU指令逐条执行调度决定执行顺序时序不可预测共享风险3项共享系统资源多进程争用同一资源共享数据读写无约束操作相互穿插缺乏访问约束典型后果2项基于过期数据判断进程依据已失效的状态做出决策结果失真最终值只反映部分更新直观场景两进程同时读写同一账户余额|先读后写、交替执行|最终余额只反映一次更新结果根源结论问题不在计算本身|而在访问时序失去约束同步与互斥是一回事吗同步进程之间为完成共同任务而协调执行顺序例如甲必须先生产、乙才能消费互斥同一时刻仅允许一个进程使用某个临界资源例如打印机、共享变量两者的联系互斥是同步的一种特殊情形,关注的是同一资源的排他使用同步范围更广,还包含进程间的先后次序约束二者都依赖对临界资源的受控访问来实现临界区与四条访问原则临界区的代码结构进入区检查并申请进入临界区›临界区访问临界资源的代码›退出区释放临界区›剩余区其余处理代码必须满足的四条原则空闲让进临界区空闲时,应允许进程立即进入忙则等待已有进程在临界区时,其他进程必须等待有限等待进程进入临界区的等待时间应有上限,避免饥饿让权等待等待时释放处理机,避免忙等浪费这四条原则是评价一切同步机制优劣的标尺。SECTION02同步利器工欲善其事必先利其器掌握同步机制的核心工具软件方法能否实现互斥软件方法单标志法设置一个公共标志,轮流允许进程进入,但违背空闲让进双标志法先检查后置位会出现同时进入,先置位后检查彼此谦让,都进不去Peterson算法结合标志与轮转变量,兼顾互斥与空闲让进,是软件方法的经典解法优点纯软件实现,不依赖硬件指令缺点依赖忙等待,难以应对多进程复杂场景硬件同步机制借助硬件指令实现互斥:三种原子手段的共同特点中断屏蔽进入临界区前关中断,退出后开中断简单但影响面大,不适用于多处理机TestAndSet指令原子地读取并置位标志用一条指令完成检查与加锁,实现互斥Swap指令原子地交换两个变量的值通过交换锁标志实现互斥优点硬件保证检查与修改不可分割,从根本上解决竞态缺点仍属忙等待,且难以实现复杂同步信号量:同步的核心工具“信号量机制简洁而强大,是操作系统中最重要的同步原语。”从整型到记录型,信号量机制简洁而强大从整型到记录型整型信号量:仅一个整数值,操作时忙等记录型信号量:增加等待队列,解决让权等待问题两个原子操作wait操作(P操作):申请资源,信号量减一,不足则阻塞signal操作(V操作):释放资源,信号量加一,唤醒等待进程实现互斥信号量初值设为
1实现同步信号量初值按资源数量或先后关系设定管程:更高级的同步封装管程由共享变量、操作过程与初始化条件三要素组成,通过自动互斥与条件变量实现进程同步。共享变量一组被管程保护的共享数据数据保护操作过程一组对变量进行操作的过程操作封装初始化与条件变量初始化代码与条件变量条件同步SECTION03经典模型经典问题蕴含通用解法剖析经典同步问题生产者消费者问题互斥的wait操作应放在同步wait之后;顺序颠倒可能引发死锁。以经典问题为载体:信号量如何同时解决互斥与同步生产者向缓冲区放入数据消费者从缓冲区取走数据缓冲区有限满时生产者必须等待空时消费者必须等待mutex互斥访问缓冲区初值为
1empty表示空缓冲区数量初值为缓冲容量full表示已满缓冲区数量初值为
0读者写者问题通过计数变量统计当前读者数,配合互斥信号量控制对计数的修改分析读者与写者对共享数据的并发约束及两种优先级策略多个读者可同时读取数据互不干扰写者写入时必须独占数据写者写时读者不能读读者读时写者不能写读写互斥约束读者优先只要有读者在读,后续读者可直接进入写者可能饥饿写者优先有写者等待时,新读者需等待保证写者不被长期推迟VS哲学家进餐问题五位哲学家围坐圆桌,进餐需同时拿起左右两支筷子五位哲学家围坐圆桌,每人两侧各有一支筷子进餐需同时拿起左右两支筷子潜在死锁循环等待,谁都无法拿到第二支筷子若每人先拿左边筷子再拿右边五个人同时拿起左筷时陷入僵局方案一最多允许四位哲学家同时拿筷子方案二规定取筷顺序,必须先左后右或先右后左方案三使用管程统一管理拿筷动作,一次拿两支SECTION04死锁迷局循环等待即陷入僵局揭示死锁的成因与条件死锁的定义与现象明确死锁定义,建立对僵局现象的直观认知“两辆车在窄路相遇,各自挡住对方去路,都不肯后退,形成僵持。”多个进程因竞争资源而相互等待,若无外力干预,谁都无法向前推进,这种僵局称为死锁阻塞状态涉及的进程都处于阻塞状态相互等待每个进程持有部分资源,又在等待其他进程占有的资源整体停滞系统整体停滞,但进程本身并无错误死锁的四个必要条件互斥条件资源在同一时刻只能被一个进程占用占有并等待进程已占有资源,同时又在等待新资源不可抢占资源只能由持有者主动释放,不能被强行剥夺循环等待存在一条进程与资源的环形等待链死锁与饥饿有何不同辨析死锁与饥饿两个易混概念,深化对阻塞的理解饥饿3项资源长期不足进程长期得不到所需资源,无法推进系统并未停滞其他进程仍在运行等待或被满足等待可能是无限的,却随时有机会被满足死锁3项全部无法推进涉及的所有进程都无法推进闭环依赖形成闭环,彼此依赖,缺乏外力无法解开系统级停滞属于更大范围的系统停滞SECTION05破局之道预防避免检测解除掌握死锁处理四大策略死锁预防:破坏必要条件破坏互斥必要条件之一一般难以破坏,多数资源本身就要求互斥使用。破坏占有并等待必要条件之二要求进程一次性申请全部资源,或申请新资源前释放已占资源。破坏不可抢占必要条件之三允许资源被抢占,但实现复杂,可能导致前功尽弃。破坏循环等待必要条件之四对所有资源统一编号,进程按序申请,避免形成环。死锁避免与银行家算法存在一个进程序列,使每个进程都能获得所需资源并顺利结束,这种状态称为安全状态。系统只要始终处于安全状态,即可避免死锁。1步骤01试探性分配进程申请资源时,系统先做试探性分配2步骤02安全性判断判断分配后系统是否仍处于安全状态3步骤03决定安全则真正分配,否则推迟请求资源分配图用有向图描述进程与资源的占有和申请关系,辅助判断是否可满足。特点比预防策略更灵活需预知各进程最大需求有一定计算开销死锁检测与解除不主动限制时,通过检测发现死锁,并在发生后予以解除。解除依据:通常选择代价最小的进程或资源作为突破口死锁检测通过资源分配图化简判断是否出现不可完全简化的环也可周期性地检查系统是否处于不安全状态检测时机需权衡开销与响应速度资源剥夺从部分进程手中强行收回资源撤销进程终止某些进程以打破循环进程回退使进程回退到某个安全点重新执行SECTION06融会贯通知识成网方能致用综合案例与体系梳理综合案例:缓冲区协同有限缓冲区的生产者消费者系统,缓冲区数据不丢失、进程不长期等待设计要点3项互斥信号量保护缓冲区访问同步信号量控制缓冲区空与满状态计数与条件变量协调多生产者多消费者风险提示3项死锁操作顺序不当可能引发饥饿资源分配不合理可能导致兼顾正确性与公平性设计时需同时考量知识体系梳理并发引出的同步需求,一路演进为可验证的完整工具链1并发执行引出同步需求2同步工具演进软件方法→硬件指令→信号量→管程3经典问题检验工具的实际运用4死锁是同步不当的极端后果5借助预防、避免、检测、解除加以应对基础与应用:同步与互斥是基础,经典问题是应用条件与策略:死锁的四个必要条件贯穿处理策略始终三重权衡:所有方法都在正确性、效率、公平性之间权衡课后思考与延伸对调wait生产者消费者问题中两个wait操作顺序对调,会发生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2026年)教师招聘教育学心理学试题及答案试卷
- 2026年单病种指标数据分析培训试题(含答案)
- 2026年儿童心理行为早期干预服务指南考试试卷试题(含答案)
- 2026年法律法规知识竞赛考试(含答案)
- 2026年机修钳工初级试题库(含答案)
- 2026年高职第二学年(康复治疗技术)康复评估阶段测试题及答案
- 2026年农业概论模拟试题及参考答案
- 2026年危险化学品经营单位安全管理人员证考试题库及答案
- 2026年汽车构造考试题库(含答案)
- 2026年性格测试题库(含答案)
- 陕西榆林榆阳区2026年基层社会治理网格员招聘考试试卷-含答案解析
- 2025年舟山市普陀区工会人员招聘考试试题及答案详解
- 2026年卫生监督员试题及答案
- 杭州城投招聘笔试题库2026
- 生成式人工智能在初中数学课堂差异化教学中的应用与实践教学研究课题报告
- 放射科CT检查放射防护培训方案
- 石膏板封板施工工艺流程
- 扬州炒饭课件
- 校园小导游测试卷(单元测试)2025-2026学年二年级数学上册(人教版)
- 初中化学全册习题集锦
- 2023年公共营养师之二级营养师真题练习试卷A卷附答案
评论
0/150
提交评论