




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 处理机调度与死锁调度的基本概念调度算法产生死锁的原因和必要条件预防死锁的方法死锁的检测与解除进程调度死锁产生死锁的原因产生死锁的必要条件处理死锁的基本方法:预防、避免、检测、解除3.5 死锁的基本概念3.5 死锁的基本概念一、死锁:指多个并发进程因争夺资源或彼此通信而造成的一种互相等待的现象,若无外力作用,这些进程都将无法向前推进。如图R1R2P1P2注意:死锁进程数至少为2所有进程均等待资源至少有两个进程占有资源死锁进程是系统中当前正在运行进程的一部分R1代表系统中仅有的一台打印设备R2代表系统中仅有的一台输入设备P1、 P2代表可共享资源的进程3.5 死锁的基本概念例:P、Q两个
2、进程在并发执行过程中可能发生死锁3.5 死锁的基本概念3.5 死锁的基本概念二、产生死锁的原因资源分类 根据资源本身的性质(占用方式)可剥夺资源:如主存、CPU、磁盘等不可剥夺资源:如读卡机、打印机等根据资源使用期限永久性资源:可再次使用,如所有硬件临时性资源:消耗性的资源,只可使用一次,如消息、信号和缓冲区内的数据死锁的原因3.5 死锁的基本概念二、产生死锁的原因竞争资源(非剥夺性资源、临时性资源)进程推进顺序不当若按下列顺序进行无死锁产生:P1:Release(s1);Request(S3);P2:Release(s2);Request(S1);P3:Release(s3);Request
3、(S2);但若按下列顺序进行可能产生死锁:P1: Request(S3); Release(s1); P2: Request(S1); Release(s2);P3: Request(S2); Release(s3);S3S1S2P1P2P33.5 死锁的基本概念三、死锁的必要条件(Coffman条件)互斥:一个资源一次只能被一个进程使用。不可剥夺:资源只能被占有者释放,不能被其它进程强行抢占。请求保持:保留已经得到的资源,还要求其它的资源。循环等待:系统中的进程形成了环形的资源请求链。(隐含前三个条件)只要有一个必要条件被系统或用户破坏掉,就不会出现死锁现象。3.5 死锁的基本概念四、处理死
4、锁的基本方法(按处理时机划分)预防死锁:通过设置某些限制条件破坏产生死锁的四个必要条件中的一个或几个条件,来防止死锁的发生(保证死锁不会发生)。避免死锁:在资源的动态分配过程中,用某种方法拒绝可能引起死锁的某个资源请求(避免死锁发生)。检测死锁:允许系统在运行过程中发生死锁,但可设置检测机构及时检测死锁的发生,并采取适当措施加以清除。解除死锁:当检测出死锁后,便采取适当措施将进程从死锁状态中解脱出来。3.6 死锁的(静态)预防和(动态)避免方法一、死锁的预防(破坏死锁必要条件,常针对条件2,3,4)互斥条件:由资源的性质决定,不可破坏。不可剥夺条件:破坏该条件只适用于CPU和内存,且实现复杂,
5、系统代价很高,降低系统吞吐量,必须小心使用。3.6 死锁的预防和避免方法一、死锁的预防(破坏死锁必要条件,常针对条件2,3,4)请求保持条件:可采用预先静态分配法,即要求进程在运行之前(创建时)一次性分配给它所需的全部资源,不满足则不把它投入运行。优点:简单安全易实现。缺点:降低资源利用率,须预知进程所需全部资源,可能使进程无限延迟。3.6 死锁的预防和避免方法一、死锁的预防(破坏死锁必要条件,常针对条件2,3,4)环路等待条件:可采用有序资源分配法,即将系统中的所有资源都按类型赋予一个编号,要求每一个进程均严格按照编号递增的次序来请求资源,同类资源一次申请完。虽提高了资源利用率,但编号难,增
6、加系统开销及因使用资源顺序与申请顺序不同而仍存在资源浪费,且资源数量不宜经常变动。3.6 死锁的预防和避免方法二、死锁的避免死锁预防的几种方法都施加了较强的限制条件,严重降低了系统性能。死锁避免方法所施加的限制条件较弱,对于进程发出的每一个资源申请命令实施动态检查,并根据检查结果决定是否实施资源分配。系统状态分为安全状态(没有死锁)和不安全状态(有可能死锁)。避免死锁实质:确保系统不进入不安全状态。3.6 死锁的预防和避免方法二、死锁的避免系统的安全状态:指在某一时刻,系统能按某种进程顺序(p1,p2,pn)来为每个进程 Pi 分配其资源,直到满足每个进程对资源的最大需求,使每个进程都可顺利地
7、完成,则称此时的系统状态为安全状态,称序列(p1,p2,pn)为安全序列。若某一时刻系统中不存在安全序列,则称此时的系统状态为不安全状态。3.6 死锁的预防和避免方法三、单资源的银行家算法银行家问题:某银行家共有100万资金。 A已借40万,还需40万; B已借20万,还需10万; C已借20万,还需70万。剩下的20万该贷给谁才安全?3.6 死锁的预防和避免方法三、单资源的银行家算法例1假定系统中有三个进程P1、P2和P3,共有12台磁带机,三个进程对磁带机的需求和占有情况如下表所示:进 程最大需求已分配可用P11053P242P392T0时刻,存在一个安全序列(P2,P1,P3),所以系统
8、是安全的。进程已分配剩余请求系统可用P1P2P35235262系统资源总数:12无安全序列,所以当前处于不安全状态。(可能导致死锁的状态)3.6 死锁的预防和避免方法三、单资源的银行家算法例23.6 死锁的预防和避免方法若系统中有同类资源16个,由四个进程P1-P4共享该资源。已知它们所需的资源总数分别为8、5、9、6。各进程请求资源的次序如右表所示,若系统采用银行家算法为它们分配资源,那么序号为_的申请分配会使系统进入不安全状态。总数16序号进程申请量123456P1P2P3P4P1P2645111三、单资源的银行家算法软考试题课堂练习系统中共有某类资源14个,4个进程在某时刻的资源占用和资
9、源需求如下表。问:(1)此时刻系统状态是否安全?(2)若此时进程P3请求1个资源,是否可以分配个他?进程最大需求已分配可用P193P2100P3125P4543.6 死锁的预防和避免方法设系统中有5个进程P0-P4,三类资源A、B、C的数量分别为10、5、7。T0时刻的资源分配情况如表:MaxAllocationNeedAvailableA B CA B CA B CA B CP07 5 30 1 07 4 3P13 2 22 0 01 2 2P29 0 23 0 26 0 03 3 2P32 2 22 1 10 1 1P44 3 30 0 24 3 1四、多资源的银行家算法例 p113-11
10、43.6 死锁的预防和避免方法 设有n个进程(P1,P2,Pn),m类资源(R1,R2,Rm)。定义如下数据结构:可用资源向量:availablej=k, 有k个Rj类资源可用最大需求矩阵:Maxi,j=k, 进程Pi最多请求k个Rj类资源分配矩阵:Allocationi,j=k, 进程Pi已分配到k个Rj类资源4.需求矩阵:Needi,j=k,进程Pi还需要k个Rj类资源。Needi,j = Maxi,j - Allocation i,j四、多资源的银行家算法3.6 死锁的预防和避免方法设系统中有5个进程P0-P4,三类资源A、B、C的数量分别为10、5、7。T0时刻的资源分配情况如表:Ma
11、xAllocationNeedAvailableA B CA B CA B CA B CP07 5 30 1 07 4 3P13 2 22 0 01 2 2P29 0 23 0 26 0 03 3 2P32 2 22 1 10 1 1P44 3 30 0 24 3 1四、多资源的银行家算法例 p113-1143.6 死锁的预防和避免方法T0时刻系统是否是安全的?为什么?如果此时P1请求资源(1,0,2)。系统能否将资源分配给它?为什么?四、多资源的银行家算法例 p113-1143.6 死锁的预防和避免方法T0时刻的安全性?Available(3,3,2)Need1(1,2,2)workAllo
12、cationNeedwork+allocationfinishA B CA B CA B CA B CP00 1 07 4 3P12 0 01 2 2P23 0 26 0 0P32 1 10 1 1P40 0 24 3 1四、多资源的银行家算法例 p113-114因为存在安全序列P1,P3,P4,P2,P0,故T0时刻系统是安全的。(注意:安全序列可能不惟一)3 3 25 3 2true 15 3 27 4 3true 27 4 37 4 5true 37 4 510 4 7true 410 4 710 5 7true 53.6 死锁的预防和避免方法P1请求资源(1,0,2)能否分配?Requ
13、est1(1,0,2)Need1(1,2,2)且Request1 (1,0,2)Need1(0,2,0)四、多资源的银行家算法例 p113-114workAllocationNeedwork+allocationfinishA B CA B CA B CA B CP00 1 07 4 3P13 0 20 2 0P23 0 26 0 0P32 1 10 1 1P40 0 24 3 12 3 05 3 2true 15 3 27 4 3true 27 4 37 4 5true 37 5 510 5 7true 57 4 57 5 5true 4分配后存在一个安全序列P1,P3,P4,P0,P2,故
14、系统是安全的。因此,可以将P1申请的资源分配给它。3.6 死锁的预防和避免方法 四、多资源的银行家算法优点允许资源的互斥使用、部分分配和不可抢占,可提高资源利用率。缺点要求事先确定进程对资源的最大需求,在现实中很困难;进程数目随时变化,安全序列不易确定。解决问题的必经之路:积累3.6 死锁的预防和避免方法实验二:模拟银行家算法编程模拟实现银行家算法。输入数据包括:进程数量,已分配资源向量(或矩阵),请求资源向量(或矩阵)和可使用资源向量;程序运行结果:如果系统当前状态是安全的,则输出资源分配的安全序列,如果系统当前状态是不安全的,则显示此次请求资源不能满足的提示。T0时刻系统安全吗?T1时刻系
15、统安全吗?3.7 死锁的检测和解除一、资源分配图 检测死锁的基本思想:在OS中保存资源的请求和分配信息,利用某种算法对这些信息加以检查,以判断是否存在死锁。为此,将进程和资源间的申请和分配关系描述成一个有向图-资源分配图。 资源分配图又称进程-资源图,它描述了进程和资源间的申请和分配关系,该图是一个有向图,具有以下定义和限制:3.7 死锁的检测和解除结点集合N和边集合E结点集合N被分为两个互斥子集进程结点子集P=P1,P2,Pn资源结点子集R=R1,R2,Rm N=P R圆圈表示一个进程;方框表示一类资源,方框中的小圆圈数表示资源个数边集合E 请求边:Pi Rj ,即e=(Pi , Rj )分
16、配边:Pi Rj ,即e= (Rj , Pi )一、资源分配图3.7 死锁的检测和解除进程有三个资源R4P1 请求一个R1P3 持有一个R3一、资源分配图3.7 死锁的检测和解除设进程集P、资源类集R及边集E如下: P=p1,p2,p3 R=r1(1),r2(2),r3(1),r4(3) E=(r1,p2), (r2,p2), (r2,p1), (r3,p3), (p1,r1), (p2,r3), (r4,p3) 对应的资源分配图:p2p1p3. . . .r1r3r2r4无环路,故不存在死锁。一、资源分配图有环路且有死锁的资源分配图有环路但没有死锁的资源分配图重要结论:如果资源分配图中不存在
17、环路,则系统中不存在死锁;反之,如果资源分配图中存在环路,则系统中可能存在死锁,也可能不存在死锁。3.7 死锁的检测和解除一、资源分配图3.7 死锁的检测和解除 资源分配图的化简:寻找一个既不阻塞又非孤立的进程结点Pi,若无则算法结束;去除Pi的所有分配边和请求边,使Pi成为一个孤立节点;转步骤。 若能消去图中所有的边,使所有进程都成为孤立结点,则称该图是可完全简化的;反之,称该图是不可完全简化的。一、资源分配图p2p1p3. . . .r1r3r2r4(a)p2p1p3. . . .r1r3r2r4(b)p2p1p3. . . .r1r3r2r4(c)p2p1p3. . . .r1r3r2r
18、4一、资源分配图该图是不可完全简化的3.7 死锁的检测和解除死锁定理:S为死锁状态的充分条件是,当且仅当S状态的资源分配图是不可完全简化的,该充分条件称为死锁定理。一、资源分配图3.7 死锁的检测和解除二、死锁检测算法 基本思想: 获得时刻 t 系统中各类可用资源的数目向量w(t),对于系统中的一组进程 p1,p2, ,pn,找出那些对各类资源请求数目均小于系统现有的各类可用资源数目的进程。这样的进程可以获得它们所需要的全部资源并运行结束,当它们运行结束后释放所占有的全部资源,从而可用资源数目增加,将这样的进程加入到可运行结束的进程序列L中,然后对剩下的进程再作上述考查。如果p1,p2, ,p
19、n中有几个进程不属于序列L,那么它们会发生死锁。3.7 死锁的检测和解除三、死锁的解除 一旦检测出系统中出现了死锁,就应将陷入死锁的进程从死锁状态中解脱出来,常用的解除死锁方法有两种:资源剥夺法:当发现死锁后,从其他进程剥夺足够数量的资源给死锁进程,以解除死锁状态。撤消进程法:采用强制手段从系统中撤消一个/一部分死锁进程,并剥夺这些进程的资源供其它死锁进程使用。思考3个进程共享4个同类资源,每个进程最大需要2个资源,请问该系统是否会因为竞争该资源而死锁?n个进程共享m个同类资源,每个进程对该类资源的最大需求量小于m,且各进程最大需求之和小于m+n,试证明在这个系统中不可能发生死锁。3. 某计算机系统中有8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年新教材高中数学 第4章 概率与统计 4.2 随机变量 4.2.4 第2课时 离散型随机变量的方差教学实录 新人教B版选择性必修第二册
- 3《做个“开心果”》第一课时(教学设计)2023-2024学年统编版道德与法治二年级下册
- 2024秋七年级数学上册 第2章 有理数及其运算2.7 有理数的乘法 1有理数的乘法教学实录(新版)北师大版
- 5电磁铁(教学设计)-2024-2025学年六年级上册科学教科版
- 5 路线图展示会(教学设计)-2024-2025学年二年级上册数学北师大版
- DB3711-T 126-2023 花生生产全产业链管理技术规范
- 房地产项目合作合同协议
- 2023三年级数学下册 二 图形的运动第2课时 轴对称(二)教学实录 北师大版
- 2023二年级数学上册 三 表内乘法教学实录 西师大版
- 4公民的基本权利和义务 第一课时《公民的基本权利》教学设计-2024-2025学年六年级上册道德与法治统编版
- 2025年陕西工业职业技术学院单招职业技能考试题库及答案一套
- 2025年城市现代化策划合同范本
- 2025年安徽水利水电职业技术学院单招综合素质考试题库及完整答案一套
- 南充市高2025届高三高考适应性考试(二诊)英语试卷
- 2025年皖西卫生职业学院单招职业适应性测试题库一套
- 踝关节骨折中医护理方案
- 2025年黑龙江省伊春市单招职业适应性测试题库含答案
- 8.3 摩擦力(课件)2024-2025学年人教版八年级物理下册
- 2025年湖南有色金属职业技术学院单招职业倾向性测试题库附答案
- 第五章产前检查及高危妊娠监测课件
- 2024年全国中学生生物学联赛试题含答案
评论
0/150
提交评论