版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、韩都衣舍官网 http:/ 青岛韩都衣舍打折优惠 http:/ 韩都衣舍怎么样 http:/ 韩都衣舍官方旗舰店 http:/ 韩都衣舍韩国衣服之家 http:/ 资源类型:系统拥有的各种资源资源类型:系统拥有的各种资源资源类型实例:属于某种资源类型的一个资源资源类型实例:属于某种资源类型的一个资源进程使用资源原则进程使用资源原则0使用前申请使用前申请0使用后释放使用后释放0总数不能超过系统所有资源总量总数不能超过系统所有资源总量进程使用资源顺序进程使用资源顺序0申请申请0使用使用0释放释放死锁(死锁(deadlockdeadlock)状态:当一组进程的每个进程等待一个事件,而这状态:当一组进
2、程的每个进程等待一个事件,而这一事件只能由这一组进程的另一进程引起一事件只能由这一组进程的另一进程引起0“事件事件”主要指资源获取和释放主要指资源获取和释放0“资源资源”可能是可能是物理资源物理资源也可能是也可能是逻辑资源逻辑资源3引起死锁的两个原因引起死锁的两个原因 竞争不可剥夺(抢占)资源竞争不可剥夺(抢占)资源0相同资源类型相同资源类型0不同资源类型不同资源类型 进程推进顺序不当进程推进顺序不当0A:Req(R1); B:Req(R2); A:Req(R2); B:Req(R1);A:Req(R1); B:Req(R2); A:Req(R2); B:Req(R1); A:Rel(R1);
3、 A:Rel(R1); A:Rel(R2); A:Rel(R2); B:Rel(R1)A:Rel(R2); A:Rel(R2); B:Rel(R1)0修改请求和释放资源次序可以避免死锁:修改请求和释放资源次序可以避免死锁:A:Req(R1); Rel(R1); A:Req(R1); Rel(R1); B:Req(R2); Req(R1); Rel(R2);B:Req(R2); Req(R1); Rel(R2); A:Req(R2); Rel(R2);A:Req(R2); Rel(R2);B:Rel(R1)B:Rel(R1)4死锁特点死锁特点1 1、死锁的特征(四个必要条件)、死锁的特征(四个必
4、要条件)0互斥互斥0占有并等待占有并等待0非抢占非抢占0循环等待循环等待 四个条件同时满足会引起死锁四个条件同时满足会引起死锁52 2、资源分配图、资源分配图 用图的方式精确描述死锁问题用图的方式精确描述死锁问题资源分配图的构成资源分配图的构成0节点集合节点集合V Vx进程节点集合进程节点集合P P(圆形)圆形)x资源类型节点集合资源类型节点集合R R(矩形圆点)矩形圆点)0边集合边集合E Ex申请边:申请边:P Pi iRRj jx分配边:分配边: R Rj j P Pi i结论结论0如果图没有环,那么系统没有进程死锁如果图没有环,那么系统没有进程死锁0如果图有环,那么如果图有环,那么可能可
5、能存在死锁存在死锁x若每个资源类型只有一个实例,有环有死锁(充分必要)若每个资源类型只有一个实例,有环有死锁(充分必要)x若每个资源类型有多个实例,有环未必死锁(必要不充分)若每个资源类型有多个实例,有环未必死锁(必要不充分)6资源分配图例资源分配图例P1P2P3R4R3R2R11、资源分配图、资源分配图P1P2P3R4R3R2R1 2、存在死锁的资源分配图、存在死锁的资源分配图7P1P2P3R2R13、存在环但无死锁的资源分配图、存在环但无死锁的资源分配图P48思考:思考: 一个计算机系统中有某种资源一个计算机系统中有某种资源 10 10 个,个,供供n n个交互型进程使用,每个进程都需要个
6、交互型进程使用,每个进程都需要 3 3 个资源。个资源。当当n n最大为何值时,系统能让尽量多的进程运行完而不会最大为何值时,系统能让尽量多的进程运行完而不会发生死锁?发生死锁? 死锁是否会只涉及一个进程或一个资源?死锁是否会只涉及一个进程或一个资源?n=8否否9死锁处理方法死锁处理方法 预防或避免死锁预防或避免死锁0确保系统决不会进入死锁状态确保系统决不会进入死锁状态 检测死锁,并加以恢复检测死锁,并加以恢复0允许系统进入死锁状态允许系统进入死锁状态 忽视死锁问题忽视死锁问题0认为死锁不可能发生认为死锁不可能发生0包括包括UNIXUNIX在内的很多操作系统采用在内的很多操作系统采用10死锁预
7、防死锁预防主要思想:通过限制资源申请,确保死锁出现的四个必主要思想:通过限制资源申请,确保死锁出现的四个必要条件之一不成立要条件之一不成立破坏互斥条件破坏互斥条件0 非共享资源:必须有互斥条件非共享资源:必须有互斥条件0 共享资源:不要求互斥访问,不会涉及死锁共享资源:不要求互斥访问,不会涉及死锁破坏占有并等待条件破坏占有并等待条件0 思想:当一个进程申请一个资源时,不能占有其他资思想:当一个进程申请一个资源时,不能占有其他资源源x 每个进程在执行前申请并获得所有资源每个进程在执行前申请并获得所有资源x 允许进程在没有资源时才可申请资源允许进程在没有资源时才可申请资源0 缺点缺点x 资源利用率
8、可能比较低资源利用率可能比较低1. 1. 可能发生饥饿可能发生饥饿11 破坏非抢占条件破坏非抢占条件0 如果一个进程占有资源并申请另一个不能立即分配如果一个进程占有资源并申请另一个不能立即分配的资源,那么其现已分配的资源都被抢占的资源,那么其现已分配的资源都被抢占破坏循环等待条件破坏循环等待条件0 对所有资源类型进行完全排序,且要求每个进程按对所有资源类型进行完全排序,且要求每个进程按递增顺序来申请资源递增顺序来申请资源死锁预防的缺点死锁预防的缺点0 设备使用率低设备使用率低0 系统吞吐率低系统吞吐率低12死锁避免死锁避免主要思想:动态的检测资源分配状态以确保循环等待条件不可能成立主要思想:动
9、态的检测资源分配状态以确保循环等待条件不可能成立1 1、安全状态、安全状态 若存在一个安全序列,则系统处于安全状态若存在一个安全序列,则系统处于安全状态例例 最大需求最大需求 当前需求当前需求P0 10 5P1 4 2P2 9 2说明:某系统有说明:某系统有12台磁带驱动器台磁带驱动器P0:最多要求最多要求10台台P1:最多要求最多要求4台台P2:最多要求最多要求9台台P1 分配分配2;用完释放;用完释放4;则系统剩余;则系统剩余5P0 分配分配5;用完释放;用完释放10;则系统剩余;则系统剩余10P2 分配分配7;用完释放;用完释放9;则系统剩余;则系统剩余1213死锁死锁不安全不安全安全安
10、全安全、不安全和死锁状态空间安全、不安全和死锁状态空间结论:结论:安全状态不是死锁状态安全状态不是死锁状态死锁状态是不安全状态死锁状态是不安全状态不是所有不安全状态都是死锁状态不是所有不安全状态都是死锁状态142 2、资源分配图算法、资源分配图算法 前提:每种资源类型只有一个实例前提:每种资源类型只有一个实例 需求边需求边Pi PiR Rj j表示进程表示进程Pi Pi可能在将来某个时刻申请资源可能在将来某个时刻申请资源Rj,Rj,,用虚线表示用虚线表示 如果把需求边转换为申请边继而转换为分配边之后,资源如果把需求边转换为申请边继而转换为分配边之后,资源分配图中没有环,那么分配图中没有环,那么
11、Pi Pi可以申请并得到可以申请并得到Rj Rj P1P2R2R1P1P2R2R1死锁避免的资源分配图死锁避免的资源分配图 不安全状态不安全状态153 3、银行家算法、银行家算法 数据结构数据结构AvailableAvailable:Availablej=kAvailablej=k,资源类型资源类型R Rj j 现有现有k k个实例个实例MaxMax:Maxi,j=kMaxi,j=k,进程进程P Pi i最多可申请最多可申请k k个个R Rj j的实例的实例AllocationAllocation:Allocationi,j=kAllocationi,j=k,进程进程P Pi i现在已经分配了
12、现在已经分配了k k个个R Rj j的实例的实例NeedNeed:Needi,j=kNeedi,j=k,进程进程P Pi i还可能申请还可能申请k k个个R Rj j的实例的实例0Needi,j = Maxi,j - Allocationi,jNeedi,j = Maxi,j - Allocationi,j 符号说明符号说明X=YX=Y(X X和和Y Y是长度为是长度为n n的向量),当且仅当对所有的向量),当且仅当对所有i=1,2,ni=1,2,n,Xi=YiXi=YiAllocationAllocationi i 表示分配给进程表示分配给进程P Pi i的资源(将的资源(将Allocati
13、onAllocation每行作为向量)每行作为向量)NeedNeed同同AllocationAllocation16安全性算法安全性算法用于确定计算机系统是否处于安全状态用于确定计算机系统是否处于安全状态设设WorkWork和和FinishFinish分别是长度为分别是长度为m m和和n n的向量,初始化的向量,初始化Work:=AvailableWork:=Available,Finishi=false(i=1,2,n)Finishi=false(i=1,2,n)查找查找 i i 使其满足使其满足0Finishi = falseFinishi = false0NeedNeedi i =Wor
14、k =Work 若没有这样的若没有这样的 i i 存在,转到存在,转到4 4)。)。Work := Work + AllocationWork := Work + Allocationi i Finishi := true Finishi := true 返回到返回到2 2)1) 1)如果对所有如果对所有 i i,Finishi = trueFinishi = true,则系统处于安全状态则系统处于安全状态17资源请求算法资源请求算法设设RequestRequesti i 为进程为进程P Pi i的请求向量的请求向量如果如果RequestRequesti i = = NeedNeedi i ,
15、那么转到第,那么转到第2 2)步。否则,产生出错条件,因为)步。否则,产生出错条件,因为进程已超过了其请求。进程已超过了其请求。如果如果RequestRequesti i = =AvailableAvailable,那么转到第那么转到第3 3)步。否则,)步。否则, P Pi i等待,因为没有等待,因为没有可用资源。可用资源。假定系统可以分配给进程假定系统可以分配给进程P Pi i 所请求的资源,并按如下方式修改状态:所请求的资源,并按如下方式修改状态:0 Available:= Available Available:= Available Request Requesti i ; ;0 A
16、llocationAllocationi i := Allocation := Allocationi i + Request + Requesti i ; ;0 NeedNeedi i := Need := Needi i Request Requesti i ; ;调用安全性算法确定新状态是否安全调用安全性算法确定新状态是否安全0 安全安全操作完成且进程操作完成且进程P Pi i分配到其所需要的资源分配到其所需要的资源1) 1) 不安全不安全进程进程P Pi i必须等待,并将数据结构恢复到原状态(必须等待,并将数据结构恢复到原状态(即即 3 3)的)的逆操作逆操作)18银行家算法举例银行家
17、算法举例说明:说明:v 5个进程个进程P0P4,v 3种资源类型种资源类型A、B、C,且实例个数分别为且实例个数分别为10、5、7v T0时刻状态如图所示时刻状态如图所示 Allocation Max Available A B C A B C A B CP0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2P3 2 1 1 2 2 2P4 0 0 2 4 3 319 问题:问题:T0时刻是否为安全状态?若是,给出安全序列时刻是否为安全状态?若是,给出安全序列若在若在T0时刻进程时刻进程P1请求资源(请求资源(1,0,2),是否能实),是否能实施分
18、配?为什么?施分配?为什么?在(在(2)的基础上,若进程)的基础上,若进程P4请求资源(请求资源(3,3,0),),是否能实施分配?为什么?是否能实施分配?为什么?在(在(3)的基础上,若进程)的基础上,若进程P0请求资源(请求资源( 0,2,0),),是否能实施分配?为什么?是否能实施分配?为什么?20MaxA B CAllocationA B CNeedA B CAvailableA B CP07 5 30 1 07 4 33 3 2P13 2 22 0 01 2 2P29 0 23 0 26 0 0P32 2 22 1 10 1 1P44 3 30 0 24 3 1转换(转换(Need)
19、21、T0T0时刻是安全的,存在安全序列时刻是安全的,存在安全序列 P0 0 1 0True 10 5 77 4 310 4 7P03 0 2True10 4 76 0 07 4 5P20 0 2True7 4 54 3 17 4 3P42 1 1True7 4 30 1 15 3 2P32 0 0True5 3 21 2 23 3 2P1AllocationA B CfinishWork+allocationA B CNeedA B CWorkA B C22 1 Request(1,0,2) Request(1,0,2) 系统试探为系统试探为P1分配资源后,资源情况是:分配资源后,资源情况是
20、:0 2 03 0 22 3 04 3 10 0 24 3 3P40 1 12 1 12 2 2P36 0 03 0 29 0 2P23 2 2P17 4 30 1 07 5 3P0AvailableA B CNeedA B CAllocationA B CMaxA B C4 执行安全性算法执行安全性算法,得到安全序列,得到安全序列 :WorkA B CNeedA B CAllocationA B CWork+allocationA B CfinishP12 3 00 2 03 0 25 3 2TrueP35 3 20 1 12 1 17 4 3TrueP47 4 34 3 10 0 27 4
21、 5TrueP07 4 57 4 30 1 07 5 5TrueP27 5 56 0 03 0 210 5 7True P1P1请求资源请求资源Request(1Request(1,0 0,2), 2), 执行银行家算法执行银行家算法: :23 P0P0请求资源请求资源RequestRequest(0 0,2 2,0 0) , ,执行银行家算法执行银行家算法: : 1 Request(0,2,0) Request(0,2,0) 系统试探为系统试探为P0分配资源后,资源情况是:分配资源后,资源情况是:MaxA B CAllocationA B CNeedA B CAvailableA B CP0
22、7 5 30 3 07 2 32 1 0P13 2 23 0 20 2 0P29 0 23 0 26 0 0P32 2 22 1 10 1 1P44 3 30 0 24 3 1 4 再进行安全性检查,再进行安全性检查,Available(2, 1, 0)不能满足任何不能满足任何进程,进入不安全状态,恢复旧数据结构,进程,进入不安全状态,恢复旧数据结构, P0等待。等待。 P4P4请求资源请求资源RequestRequest(3 3,3 3,0 0) , ,执行银行家算法执行银行家算法: : 1 Request(3, 3, 0) Request(3, 3, 0) =Available(2, 3,
23、 0), P4 等待等待.24 练习练习 Allocation Max Available A B C A B C A B CP1 2 1 2 5 5 9 2 3 3 P2 4 0 2 5 3 6 P3 4 0 5 4 0 11P4 2 0 4 4 2 5P5 3 1 4 4 2 4说明:说明:v 5个进程个进程P1P5,v 3种资源类型种资源类型A、B、C,且实例个数分别为且实例个数分别为17、5、20v T0时刻状态如图所示时刻状态如图所示25 问题:问题:T0时刻是否为安全状态?若是,给出安全序列时刻是否为安全状态?若是,给出安全序列若在若在T0时刻进程时刻进程P2请求资源(请求资源(0
24、,3,4),是否能实),是否能实施分配?为什么?施分配?为什么?在(在(2)的基础上,若进程)的基础上,若进程P4请求资源(请求资源(2,0,1),),是否能实施分配?为什么?是否能实施分配?为什么?在(在(3)的基础上,若进程)的基础上,若进程P1请求资源(请求资源( 0,2,0),),是否能实施分配?为什么?是否能实施分配?为什么?26MaxA B CAllocationA B CNeedA B CAvailableA B CP15 5 92 1 23 4 72 3 3P25 3 64 0 21 3 4P3 4 0 114 0 50 0 6P44 2 52 0 42 2 1P54 2 43
25、 1 41 1 0转换(转换(Need)27(1)T0T0时刻是安全的,存在安全序列时刻是安全的,存在安全序列 P4 2 0 4True 17 5 202 2 115 5 16P44 0 5True15 5 160 0 611 5 11P34 0 2True11 5 111 3 47 5 9P22 1 2True7 5 93 4 75 4 7P13 1 4True5 4 71 1 02 3 3P5AllocationA B CfinishWork+allocationA B CNeedA B CWorkA B C28 1 Request(0,3,4) Request(0,3,4)Availab
26、le(2,3,3);); 没有可用资源,不能分配,需等待!没有可用资源,不能分配,需等待!(2) P2P2请求资源请求资源Request(0Request(0,3 3,4), 4), 执行银行家算法执行银行家算法: :29 1 Request(2,0,1) Request(2,0,1) 系统试探为系统试探为P4分配资源后,资源情况是:分配资源后,资源情况是:1 3 44 0 20 3 21 1 03 1 44 2 4P50 2 04 0 54 2 5P40 0 64 0 5 4 0 11P35 3 6P23 4 72 1 25 5 9P1AvailableA B CNeedA B CAlloc
27、ationA B CMaxA B C4 执行安全性算法执行安全性算法,得到安全序列,得到安全序列 :WorkA B CNeedA B CAllocationA B CWork+allocationA B CfinishP40 3 20 2 04 0 54 3 7TrueP54 3 71 1 03 1 4 7 4 11TrueP1 7 4 113 4 72 1 2 9 5 13TrueP2 9 5 131 3 44 0 2 13 5 15TrueP313 5 150 0 64 0 5 17 5 20True (3)P4P4请求资源请求资源Request(2Request(2,0 0,1), 1)
28、, 执行银行家算法执行银行家算法: :30(4 4)P1P1请求资源请求资源RequestRequest(0 0,2 2,0 0) , ,执行银行家算法执行银行家算法: : 1 Request(0,2,0) Request(0,2,0) 系统试探为系统试探为P1分配资源后,资源情况是:分配资源后,资源情况是: 4 再进行安全性检查,再进行安全性检查,Available(0, 1, 2)不能满足任何不能满足任何进程,进入不安全状态,恢复旧数据结构,进程,进入不安全状态,恢复旧数据结构, P1等待。等待。1 3 44 0 20 1 21 1 03 1 44 2 4P50 2 04 0 54 2 5
29、P40 0 64 0 5 4 0 11P35 3 6P23 2 72 3 25 5 9P1AvailableA B CNeedA B CAllocationA B CMaxA B C31死锁检测死锁检测 对于不采用死锁预防和死锁避免但处理死锁的系统应对于不采用死锁预防和死锁避免但处理死锁的系统应提供:提供:0一个用来检查系统状态从而确定是否出现了死锁的一个用来检查系统状态从而确定是否出现了死锁的算法算法0一个用来从死锁状态中恢复的算法一个用来从死锁状态中恢复的算法 检测恢复方案会有额外的开销检测恢复方案会有额外的开销321 1、每种资源类型只有单个实例、每种资源类型只有单个实例思想:将资源分配
30、图转换成对应的等待图,看是否有环。思想:将资源分配图转换成对应的等待图,看是否有环。转换方法举例如下:转换方法举例如下:P1P2P4P3P5R1R5R4R3R2P4P5P3P2P1资源分配图资源分配图对应的等待图对应的等待图332 2、每种资源类型有多个实例、每种资源类型有多个实例思想:类似于银行家算法,描述如下思想:类似于银行家算法,描述如下设设WorkWork和和FinishFinish分别是长度为分别是长度为m m和和n n的向量,初始化的向量,初始化Work:=AvailableWork:=Available,若若 AllocationAllocationi i不为不为0 0,则,则
31、Finishi = falseFinishi = false,否则,否则,Finishi = true Finishi = true ( (i=1,2,n)i=1,2,n)查找查找 i i 使其满足使其满足0Finishi = falseFinishi = false0RequestRequesti i =Work =Work 若没有这样的若没有这样的 i i 存在,转到存在,转到4 4)。)。Work := Work + AllocationWork := Work + Allocationi i Finishi := true Finishi := true 返回到返回到2 2)1) 1)
32、如果对某个如果对某个 i i,Finishi = falseFinishi = false,则系统死锁(进程则系统死锁(进程P Pi i死锁)死锁)34例例说明:说明:v 5个进程个进程P0P4,v 3种资源类型种资源类型A、B、C,且实例个数分别为且实例个数分别为7、2、6v T0时刻状态如下时刻状态如下 Allocation Request Available A B C A B C A B CP0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0P3 2 1 1 1 0 0P4 0 0 2 0 0 235 问题:问题:T0时刻是否处于死锁状态?为什么?时刻是否处于死锁状态?为什么?若在若在T0时刻进程时刻进程P2请求资源(请求资源(0,0,1),新的状态),新的状态是否处于死锁状态?为什么?是否处于死锁状态?为什么?36(1)T0T0时刻是安全的,存在安全序列时刻是安全的,存在安全序列 P4 0 0 2True 7 2 60 0 27 2 4P42 0 0True7 2 42 0 25 2 4P12 1 1True5 2 41 0 03 1 3P33 0 3True3 1 30 0 00 1 0P20 1 0True0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二手房资金监管服务规范化合同2024版
- 二零二五年度户外广告宣传推广合同
- 2025年度男女双方协议离婚后的财产分配及子女监护合同3篇
- 2025年度面包烘焙品牌跨界合作订购合同4篇
- 二零二五年度农药行业数据分析与研究报告合同
- 二零二五年度教育机构教师聘用合同续签模板
- 二零二五年度影视行业演员形象代言合同保密条款范本3篇
- 2025年度跨境电商企业出口贷款合同范本2篇
- 二零二五版镍矿国际贸易风险预警合同3篇
- 2025年度分手后子女教育经费及抚养费支付合同4篇
- 【地理】地图的选择和应用(分层练) 2024-2025学年七年级地理上册同步备课系列(人教版)
- (正式版)CB∕T 4552-2024 船舶行业企业安全生产文件编制和管理规定
- JBT 14588-2023 激光加工镜头 (正式版)
- 2024年四川省成都市树德实验中学物理八年级下册期末质量检测试题含解析
- 九型人格与领导力讲义
- 廉洁应征承诺书
- 2023年四川省成都市中考物理试卷真题(含答案)
- 泵车述职报告
- 2024年山西文旅集团招聘笔试参考题库含答案解析
- 恢复中华人民共和国国籍申请表
- 管理期货的趋势跟踪策略 寻找危机阿尔法
评论
0/150
提交评论