第四章_处理机调度与锁(续).ppt
《第四章_处理机调度与锁(续).ppt》由会员分享,可在线阅读,更多相关《第四章_处理机调度与锁(续).ppt(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第四四章章(续)(续)死锁死锁n死锁的基本概念死锁的基本概念n死锁的解决方案死锁的解决方案 (预防,避免,检测及解除)(预防,避免,检测及解除)n资源分配图资源分配图死锁的现象死锁的现象一、死锁的基本概念一、死锁的基本概念1.1.死锁的定义死锁的定义 一组进程中,每个进程都无限等待被该一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象称为永远无法得到的资源,这种现象称为进进程死锁程死锁,这一组进程就称为,这一组进程就称为死锁进程死锁进程死锁(死锁(Deadlock)饥饿(饥饿(Starvation)参与死锁的进程
2、最少是两个参与死锁的进程最少是两个 (两个以上进程才会出现死锁)(两个以上进程才会出现死锁)参与死锁的进程至少有两个已经占有资源参与死锁的进程至少有两个已经占有资源参与死锁的所有进程都在等待资源参与死锁的所有进程都在等待资源参与死锁的进程是当前系统中所有进程的子集参与死锁的进程是当前系统中所有进程的子集注:如果死锁发生,会浪费大量系统资源,注:如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃甚至导致系统崩溃关于死锁的一些结论关于死锁的一些结论2.产生死锁的原因产生死锁的原因1、争夺资源引起死锁争夺资源引起死锁 例例1:P1,P2两个进程争夺打印机和读卡机。两个进程争夺打印机和读卡机。P1P2
3、打印机 P1P1已经申请到打印机,已经申请到打印机,又申请读卡机。又申请读卡机。P2P2已经申请到读卡机,已经申请到读卡机,又申请打印机。又申请打印机。打印机和读卡机为打印机和读卡机为非剥夺性资源。非剥夺性资源。读卡机n例2、P1,P2,P3 三个进程之间通信:n P1产生消息S1,接收P3产生的消息S3;n P2产生消息S2,接收P1产生的消息S1;n P3产生消息S3,接收P2产生的消息S2;按以下次序运行:P1:Request(S3);Release(S1)P2:Request(S1);Release(S2)P3:Request(S2);Release(S3)2 2、进程推动顺序不当引起
4、的死锁、进程推动顺序不当引起的死锁P1P3S2S3S1P1P2P3按照以上的顺序执行会产生死锁吗?按照以上的顺序执行会产生死锁吗?S Si i临时性资源临时性资源获得获得A获得获得B获得获得A获得获得B释放释放A释放释放B释放释放B释放释放AP请求请求AP请求请求BQ请请求求AQ请请求求B死锁区死锁区P,Q都申请都申请AP,Q都申请都申请B资源资源永久性资源:可以被多个进程多次使用永久性资源:可以被多个进程多次使用(可再用资源)(可再用资源)*可抢占资源可抢占资源n不可抢占资源不可抢占资源临时性资源:只可使用一次的资源;如信临时性资源:只可使用一次的资源;如信号量号量,中断信号,同步信号等(可
5、消耗性中断信号,同步信号等(可消耗性资源)资源)“申请申请-分配分配-使用使用-释放释放”模式模式3.产生死锁的四个必要条件产生死锁的四个必要条件n互斥使用(资源独占)互斥使用(资源独占)n不可强占(不可剥夺)不可强占(不可剥夺)n请求和保持(部分分配,占有申请请求和保持(部分分配,占有申请)n循环等待循环等待1)互斥使用(资源独占)互斥使用(资源独占)一个资源每次只能给一个进程使用一个资源每次只能给一个进程使用2)不可强占(不可剥夺)不可强占(不可剥夺)资源申请者不能强行的从资源占有者手中资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放夺取资源,资源只能由占有者自愿释放
6、 3)请求和保持请求和保持(部分分配,占有申请)(部分分配,占有申请)一个进程在申请新的资源的同时保持对原有一个进程在申请新的资源的同时保持对原有资源的占有资源的占有(只有这样才是动态申请,动态分配(只有这样才是动态申请,动态分配)4)循环等待循环等待 存在一个进程等待队列存在一个进程等待队列 P1,P2,Pn,其中其中P1等待等待P2占有的资源,占有的资源,P2等待等待P3占占有的资源,有的资源,Pn等待等待P1占有的资源,占有的资源,形成一个进程等待环路形成一个进程等待环路二、死锁的解决方案二、死锁的解决方案1.产生死锁的例子产生死锁的例子 申请不同类型资源产生死锁申请不同类型资源产生死锁
7、P1P1:申请打印机申请打印机申请扫描仪申请扫描仪使用使用释放打印机释放打印机释放扫描仪释放扫描仪P2P2:申请扫描仪申请扫描仪申请打印机申请打印机使用使用释放打印机释放打印机释放扫描仪释放扫描仪申请同类资源产生死锁申请同类资源产生死锁(如内存)(如内存)设有资源设有资源R R,R R有有m m个分配单位,由个分配单位,由n n个进程个进程P P1 1,P,P2 2,P Pn n(n mn m)共享。假设每个进共享。假设每个进程对程对R R的申请和释放符合下列原则:的申请和释放符合下列原则:*一次只能申请一个单位一次只能申请一个单位 *满足总申请后才能使用满足总申请后才能使用 *使用完后一次性
8、释放使用完后一次性释放m=2m=2,n=3n=3资源分配不当导致死锁产生资源分配不当导致死锁产生2.解决死锁的方法解决死锁的方法n鸵鸟策略鸵鸟策略 不理睬死锁。从工程角度考虑死锁概率及解不理睬死锁。从工程角度考虑死锁概率及解决的代价决的代价n预防策略预防策略 破坏死锁的四个必要条件之一破坏死锁的四个必要条件之一n避免策略避免策略 采用某种算法判断资源申请是否满足,以采用某种算法判断资源申请是否满足,以动态地回避死锁动态地回避死锁n检测和解除检测和解除 检测出发生的死锁并采取措施予以解除检测出发生的死锁并采取措施予以解除3.死锁预防死锁预防定义:定义:在系统设计时确定资源分配算法,保在系统设计时
9、确定资源分配算法,保证不发生死锁证不发生死锁 具体的做法是破坏产生死锁的四个必具体的做法是破坏产生死锁的四个必要条件之一要条件之一死锁预防死锁预防破坏破坏“不可剥夺不可剥夺”条件条件 在允许进程动态申请资源前提下规定,在允许进程动态申请资源前提下规定,一个进程在申请新的资源不能立即得到一个进程在申请新的资源不能立即得到满足而变为等待状态之前,满足而变为等待状态之前,必须释放已必须释放已占有的全部资源占有的全部资源,若需要再重新申请,若需要再重新申请破坏破坏“请求和保持请求和保持”条件条件 要求每个进程在运行前必须一次性申请要求每个进程在运行前必须一次性申请它所要求的所有资源,且仅当该进程它所要
10、求的所有资源,且仅当该进程所要资源均可满足时才给予所要资源均可满足时才给予一次性分一次性分配配死锁预防死锁预防破坏破坏“循环等待循环等待”条件条件 采用资源有序分配法:采用资源有序分配法:把系统中所有资源编号,进程在申请资把系统中所有资源编号,进程在申请资源时必须严格按资源编号的源时必须严格按资源编号的递增次序递增次序进进行,否则操作系统不予分配行,否则操作系统不予分配死锁预防死锁预防如何证明按资源有序分配法进行分配肯定不会产如何证明按资源有序分配法进行分配肯定不会产生死锁?生死锁?ni j 表示:资源表示:资源 Ri 先于资源先于资源 Rjn假设进程假设进程A和和B处于死锁状态,因为处于死锁
11、状态,因为A已已经拥有了经拥有了Ri并申请并申请Rj;同时同时B已经拥有了已经拥有了Rj并申请并申请Ri。n即:即:nPA:Ri Rj 即有即有 i jnPB:Rj Ri 即有即有 j i破坏破坏“循环等待循环等待”条件条件例如:例如:1 1,2 2,3 3,1010P1:申请申请1申请申请3申请申请9P2:申请申请1申请申请2申请申请5P3 P10回顾回顾n进程调度进程调度n调度算法调度算法n死锁预防死锁预防n破环必要条件破环必要条件4.死锁避免死锁避免n允许死锁前三个条件的成立,但作一定的判断允许死锁前三个条件的成立,但作一定的判断选择以确保永远不会达到死锁点选择以确保永远不会达到死锁点n
12、采用某种算法动态判断当前资源分配请求是否采用某种算法动态判断当前资源分配请求是否有可能导致死锁,如可能导致死锁,则拒绝本有可能导致死锁,如可能导致死锁,则拒绝本次资源申请要求或是中止该进程的运行次资源申请要求或是中止该进程的运行死锁避免定义死锁避免定义定义:定义:在系统运行过程中,对进程发出的每一个在系统运行过程中,对进程发出的每一个系统能够满足的资源申请进行动态检查,系统能够满足的资源申请进行动态检查,并根据检查结果决定是否分配资源,若分并根据检查结果决定是否分配资源,若分配后系统可能发生死锁,则不予分配,否配后系统可能发生死锁,则不予分配,否则予以分配则予以分配死锁避免和死锁预防的区别?死
13、锁避免和死锁预防的区别?安全状态与不安全状态安全状态与不安全状态安全状态:安全状态:如果存在一个由系统中所有进程构成的如果存在一个由系统中所有进程构成的安全序列安全序列P P1 1,P Pn n,则系统处于安全状则系统处于安全状态态死锁避免死锁避免安全序列:安全序列:一个进程序列一个进程序列PP1 1,P Pn n 是安全的,如是安全的,如果对于每一个进程果对于每一个进程P Pi i(1(1i in n),),它以后它以后尚需要的资源量不超过系统当前剩余资尚需要的资源量不超过系统当前剩余资源量与所有进程源量与所有进程P Pj j(j i)(j i)当前占有资当前占有资源量之和,系统处于安全状态
14、源量之和,系统处于安全状态 (安全状态一定是没有死锁发生的安全状态一定是没有死锁发生的)安全状态与不安全状态安全状态与不安全状态不安全状态不安全状态:不存在一个安全序列,不安全不存在一个安全序列,不安全状态可能导致死锁状态可能导致死锁目前占有量目前占有量最大需求量最大需求量尚需要量尚需要量P15105P2242P3297系统剩余量系统剩余量3共有共有12台磁带机台磁带机 T0时刻分配情况如下:时刻分配情况如下:T0时刻是否安全?如果此时时刻是否安全?如果此时P3又请求一台磁又请求一台磁带机,又是否安全?带机,又是否安全?银行家算法银行家算法n n:系统中进程的总数系统中进程的总数m m:资源类
15、总数资源类总数Available:Available:ARRAY1.m of integer;ARRAY1.m of integer;Max:Max:ARRAY1.n,1.m of integer;ARRAY1.n,1.m of integer;银行家算法银行家算法Allocation:Allocation:ARRAY1.n,1.m of integer;ARRAY1.n,1.m of integer;Need:Need:ARRAY1.n,1.m of integer;ARRAY1.n,1.m of integer;Request:Request:ARRAY1.n,1.m of integer
16、;ARRAY1.n,1.m of integer;银行家算法银行家算法简记符号:简记符号:AvailableAvailableMaxiMaxiAllocationiAllocationiNeediNeediRequestiRequesti必须满足的关系必须满足的关系1、资源总数、资源总数=可用资源数可用资源数+已分配资源数已分配资源数Ri=AvailableAvailable+AllocationiAllocationi2、申请量不能超过需求量申请量不能超过需求量RequestiRequesti=NeediNeedi3、已分配数不可能超过它所需的资源数已分配数不可能超过它所需的资源数Alloc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 处理机 调度
限制150内