版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章死锁1.什么是死锁?请举一个生活中死锁的例子。定义:死锁是指多个进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力干涉,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。生活例子:比如在一条狭窄的单行道上,两辆车迎面相遇,都无法后退,也无法前进,互相阻塞,谁也过不去,这就是一个典型的死锁场景。在操作系统中,比如进程A持有资源1并请求资源2,进程B持有资源2并请求资源1,两者都无法继续执行,也无法释放已占有的资源,从而陷入永久等待,就是死锁。什么原因引起了死锁?死锁发生的4个条件是什么?引起死锁的原因:系统资源不足;进程推进顺序不当;资源分配策略不合理。死锁发生的4个必要条件:互斥条件:进程对所分配到的资源具有排他性使用权,即某资源只能被一个进程占用,其他进程若请求该资源则必须等待,直到该资源被释放。请求和保持条件(占有且等待):进程已经占有了至少一个资源,又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程被阻塞,但对自己已占有的资源保持不放。不剥夺条件:进程已获得的资源,在未使用完之前,不能被其他进程强行夺走,只能由进程自己主动释放。循环等待条件:系统中存在一种进程资源的循环等待链,链中每一个进程已占有的资源同时被下一个进程所请求。处理死锁的3种方法是什么,请分别描述它们各自的思想。处理死锁的方法主要有三类:预防死锁:思想:通过设置某些限制条件,去破坏产生死锁的四个必要条件中的一个或几个,来防止死锁的发生。这是一种较易实现的方法,已被广泛使用,但由于所施加的限制条件往往太严格,可能会导致系统资源利用率和系统吞吐量降低。例如:破坏“请求和保持”条件,要求进程在开始运行前一次性申请所有资源;破坏“不剥夺”条件,允许系统在进程请求资源得不到满足时,剥夺其已占有的资源;破坏“循环等待”条件,对资源进行编号,规定进程只能按编号递增的顺序请求资源。避免死锁:思想:在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免发生死锁。这种方法只需事先施加较弱的限制条件,便可获得较高的资源利用率及系统吞吐量,但在实现上有一定的难度。典型算法是银行家算法,它在每次资源分配前进行安全性检查,确保分配后系统仍处于安全状态,才允许分配资源。检测和解除死锁:思想:系统并不预先采取任何限制措施,而是允许系统在运行过程中发生死锁。但系统提供了检测和解除死锁的手段:当死锁发生后,系统能够及时检测到死锁的发生,并通过剥夺资源或撤销进程等方式解除死锁。这种方法对资源的利用率和系统吞吐量影响最小,但实现复杂度较高,且死锁发生后需要额外的开销来解除。不安全状态是否必然导致系统进入死锁状态,为什么?不安全状态不必然导致系统进入死锁状态。原因:不安全状态是指系统中不存在一个安全序列,即如果进程继续按某种顺序请求资源,可能会导致死锁。但这只是一种潜在的风险,并不意味着死锁一定会发生。进程的推进顺序是不确定的,如果进程的请求和释放顺序发生变化,系统可能会从不安全状态转变为安全状态,从而避免死锁。例如,一个进程可能在请求资源失败后主动释放部分已占有的资源,或者系统调度顺序发生变化,使得其他进程能够先完成并释放资源,从而打破潜在的死锁循环。因此,不安全状态只是死锁的必要条件,而非充分条件。5.银行家算法分析题已知:系统剩余资源Available=(1,5,2,0),各进程的已分配资源Allocation、最大需求Max如下表:进程Allocation(A,B,C,D)Max(A,B,C,D)P₁(0,0,1,2)(0,0,1,2)P₂(1,0,0,0)(1,7,5,0)P₃(1,3,5,4)(2,3,5,6)P₄(0,6,3,2)(0,6,5,2)P₅(0,0,1,4)(0,6,5,6)现在系统是否处于安全状态?计算各进程的剩余需求Need=Max-Allocation:Need₁=(0,0,1,2)-(0,0,1,2)=(0,0,0,0)Need₂=(1,7,5,0)-(1,0,0,0)=(0,7,5,0)Need₃=(2,3,5,6)-(1,3,5,4)=(1,0,0,2)Need₄=(0,6,5,2)-(0,6,3,2)=(0,0,2,0)Need₅=(6,5,6,6)-(0,0,1,4)=(0,6,4,2)初始Available=(1,5,2,0)P₁完成后Available=(0,0,1,2)+(1,5,2,0)=(1,5,3,2)P3完成后Available=(1,3,5,4)+(1,5,3,2)=(2,8,8,6)P4完成后Available=(0,6,3,2)+(2,8,8,6)=(2,14,11,8)P5完成后Available=(0,0,1,4)+(2,14,11,8)=(2,14,12,12)P2完成后Available=(1,0,0,0)+(2,14,12,12)=(3,14,12,12)安全序列:[P₁,P₃,P4,P₅,P2]如果进程P₂提出请求Request₂=(0,4,2,0),系统能否满足?假设分配资源,更新系统状态Available'=Available-Request₂=(1,5,2,0)-(0,4,2,0)=(1,1,0,0)计算各进程的剩余需求Need=Max-Allocation:Need₁=(0,0,1,2)-(0,0,1,2)=(0,0,0,0)Need₂=(1,7,5,0)-(1,4,2,0)=(0,3,3,0)Need₃=(2,3,5,6)-(1,3,5,4)=(1,0,0,2)Need₄=(0,6,5,2)-(0,6,3,2)=(0,0,2,0)Need₅=(6,5,6,6)-(0,0,1,4)=(0,6,4,2)安全序列:[P₁,P₃,P₄,P₂,P₅]分配后系统仍存在安全序列,因此系统可以满足P₂的请求。6.题目:设有3个进程P1、P2、P3,各自按图中顺序执行程序代码,其中S1、S2、S3是信号量,且初值均为1。在执行时是否会产生死锁?如果会产生死锁,请说明在什么情况下会产生死锁?并给出防止死锁产生的修改办法。当三个进程同时执行第一个P操作时(这里的P操作等价于wait操作,V操作等价于signal操作),会出现:有3个进程P1、P2和P3并发工作。进程P1需用资源S3和S1;进程P2需用资源S1和S2;进程P3需用资源S2和S3。若对资源分配不加限制,会出现什么情况?为什么?(2)为保证进程正确工作,应采用怎样的资源分配策略?为什么?解答:(1)会出现死锁。原因:若每个进程都先申请到第一个资源:P1获得S3,再请求S1;P2获得S1,再请求S2;P3获得S2,再请求S3;此时三个进程都持有一个资源,同时请求下一个被其他进程持有的资源,形成循环等待,发生死锁。采用的资源分配策略及原因:策略1:有序资源分配法规定所有资源按S1->S2->S3的顺序申请,每个进程必须按此顺序请求资源。原因:破坏“循环等待”条件,避免进程间形成资源请求环。策略2:一次性分配(静态分配)进程在运行前一次性申请所有需要的资源,系统要么全部分配,要么一个都不分配。原因:破坏“请求与保持”条件,进程运行过程中不再请求新资源,避免占有资源等待其他资源的情况。策略3:银行家算法(避免死锁)动态分配资源时,每次分配前检查系统是否处于安全状态,仅当分配后仍存在安全序列时才分配资源。原因:通过避免系统进入不安全状态,从根源上预防死锁发生。设系统有3种类型的资源,数量为(4,2,2),系统中有进程A、B、C,按如下顺序请求资源:进程A申请(3,2,1),进程B申请(1,0,1),进程A申请(0,1,0),进程C申请(2,0,0)。请给出一种防止死锁的资源剥夺分配策略,满足上述进程的请求,并列出资源分配过程,指明哪些进程需要等待,哪些资源被剥夺。解答:防止死锁的方案如下:要解除死锁,在选择撤销某个进程或者剥夺某个资源的时候,需要考虑什么因素?解答:解除死锁时,选择撤销进程或剥夺资源需考虑以下因素:①撤销进程的考虑因素进程优先级:优先撤销优先级低的进程,减少对系统关键任务的影响。进程已运行时间:优先撤销运行时间短的进程,减少系统因进程重启而产生的开销。进程已占资源量:优先撤销占有资源少的进程,减少资源回收的成本。进程的重要性:优先撤销非关键进程,避免影响系统核心功能或用户关键任务。撤销的代价:考虑进程重启的开销(如重新加载数据、恢复上下文),选择代价最小的进程。②
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年彩虹瀑布美术教案
- 2.2 物质的微观粒子模型 教学设计-浙教版科学八年级下册
- 2025-2026学年春教学设计1课时记录
- 2025-2026学年茶馆舞蹈音乐教案
- 十个题目七个难题及答案
- 2025-2026学年嫁接果树 教学设计方案
- 2025-2026学年教学设计设计意图要写吗
- 2025年中国摩托车链轮市场调查研究报告
- 2025年中国承插式异径管市场调查研究报告
- 2025年中国成套餐具市场调查研究报告
- TNAIA0243-2023食品加工与检测洁净室(区)沉降菌的测定方法
- 盘扣脚手架拆除施工方案
- 卡西欧手表EQS-A500(5289)中文说明书
- 电力线路迁改工程施工组织设计(完整常用版)
- 达拉特旗100万千瓦矿区光伏+储能项目环评报告书
- 屈原【六幕话剧】郭沫若
- 天适酒店网络规划设计
- 缺血性脑血管病介入治疗课件
- 农村宅基地两兄弟协议书
- 微格教学大纲(体育教育专业本科)
- GB/T 26480-2011阀门的检验和试验
评论
0/150
提交评论