欢迎来到天天文库
浏览记录
ID:11390179
大小:347.01 KB
页数:52页
时间:2018-07-11
《cch08_deadlock(操作系统)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Module8:Deadlocks(死锁)SystemModel(系统模型)DeadlockCharacterization(死锁特征)MethodsforHandlingDeadlocks(处理死锁的方法)DeadlockPrevention(预防死锁)DeadlockAvoidance(死锁避免)DeadlockDetection(死锁检测)RecoveryfromDeadlock(死锁恢复)CombinedApproachtoDeadlockHandling(综合处理方法)TheDeadlockProblem(死锁问题
2、)Asetofblockedprocesseseachholdingaresourceandwaitingtoacquirearesourceheldbyanotherprocessintheset.(一组等待的进程,其中每一个进程都持有资源,并且等待着由这个组中其他进程所持有的资源)死锁Deadlock:计算机系统中多道程序并发执行时,两个或两个以上的进程由于竞争资源而造成的一种互相等待的现象(僵局),如无外力作用,这些进程将永远不能再向前推进。如果一个进程要使用OS管理的资源,需先向系统提出申请,如果有可用资源,系统才进
3、行分配。资源的分类,根据资源性质:可抢占资源—指资源占有进程虽然需要使用该资源,但另一个进程却可强行把资源从占有者进程处抢来。不可抢占资源—指只有占用者进程不再需要使用该资源而主动释放资源外,其它进程不得在占有者进程使用资源过程中强行抢占。根据使用方式:共享资源和独占资源。根据使用期限;永久资源和临时性资源。资源共享:CPU、主存、硬盘独占:打印机,读卡机,磁带驱动器可顺序重复使用的资源由一个进程产生,被另外一个进程使用短暂时间之后便无用的资源TheDeadlockProblemExample1Systemhas2taped
4、rives.(系统有两个磁带设备)P1andP2eachholdonetapedriveandeachneedsanotherone.(进程P1和P2各占有一个磁带设备并且实际需要两个磁带)Example2semaphoresAandB,initializedto1(信号量A,B初始化为1)P0P1wait(A);wait(B)wait(B);wait(A)BridgeCrossingExample(过桥的例子)Trafficonlyinonedirection.(只有一个方向)Eachsectionofabridgecan
5、beviewedasaresource.(桥的每一个部分都可以看成资源)Ifadeadlockoccurs,itcanberesolvedifonecarbacksup(preemptresourcesandrollback).(如果死锁发生,它可以由一辆车返回而解决,抢占资源并回退)Severalcarsmayhavetobebackedupifadeadlockoccurs.(如果死锁发生,可能很多车都不得不返回)Starvationispossible.(有可能产生饥饿)死锁的原因和条件竞争资源引起死锁当系统中供多个进
6、程所使用的资源,不足以同时满足它们的需要时,引起它们对资源的竞争而产生死锁进程推进顺序不当引起死锁在多道程序系统中,并发执行的进程推进序列不可予测有些推进顺序,进程可以顺利完成有的推进顺序会引起进程无限期地等待永远不会发生的条件而不能向前推进,造成死锁P2Rel(R1)P2Rel(R2)P2Req(R1)P2Req(R2)P1Req(R1)P1Req(R2)P1Rel(R1)P1Rel(R2)③④③③③②②①①进程P1、P2并发执行。资源R1、R2各有一个曲线4将进入不安全区域(进程推进顺序非法)P1S1S3P2P3S2P1
7、:Release(S1);Request(S3)P2:Release(S2);Request(S1)P3:Release(S3);Request(S2)不可能发生死锁P1:Request(S3);Release(S1)P2:Request(S1);Release(S2)P3:Request(S2);Release(S3)可能发生死锁S1、S2、S3是临时资源DeadlockCharacterization(死锁的特性)Mutualexclusion:onlyoneprocessatatimecanusearesource.(
8、互斥:一次只有一个进程可以使用一个资源)Holdandwait:aprocessholdingatleastoneresourceiswaitingtoacquireadditionalresourcesheldbyotherprocesses.(占有并等待:一个至少持有一个资源的进程等待
此文档下载收益归作者所有