本章考核知识点 :1、死锁的产生 2、死锁的防止 3、死锁的避免4、死锁的检测
本章自学要求 :理解“死锁”影响系统的可靠性。死锁的产生与进程对资源的需求、进程的执行速度、资源的分配策略有关。系统应采用一定的策略实现资源分配以保证系统的安全。
本章重点是 :死锁的 防止 和 避免 .
一、死锁的产生( 领会 )
话说狼GG和狼MM面对面走上一根独木桥。
狼GG说:呵呵,小MM,我已经占领了这座桥的一半,你不如退出去让我先过去吧。
狼MM说,哼哼,老兄,我也占了这座桥的一半,你咋不让给我?
狼GG和狼MM互不相让,都在等对方先让步。结果两个都过不了河。等着猎人来处理后事了。
1、什么叫 死锁 : 若系统中存在一组进程(两个或多个进程),它们中的每一个进程都占用了某种资源而又都在等待其中另一个进程所占用的资源,这种等待永远不能结束,则说系统出现了“死锁”。或说这组进程处于“死锁”状态。
2、引起死锁的因素:死锁的出现除了与资源的分配策略有关外,也与并发进程的执行速度有关,即操作系统对资源管理不得当或没有顾及进程并发执行时可能出现的情况,则就可能形成死锁。
二、死锁的防止( 简单应用 ) 我们把桥的一半看作一个资源的话,那么,当狼MM占用了其中一个资源后,狼GG就只好等待了。
狼GG狼MM各自占有了一段资源又在等另外的资源,又不肯放弃自己占有的资源。
他们又不能把对方踢下河去,把另一段资源抢过来自己用。
只好互相等待了。
这4个条件是必要条件而不是充分条件,意思是,只要发生死锁,那么这四个条件必然都成立。反之则不然,有时候即使四个条件都满足,那也不一定发生死锁。(从资源分配图中可以分析得到,即使形成循环等待资源,也不一定形成死锁。)
1、系统出现死锁必然同时保持的四个必要条件:
1)互斥使用资源
2)占有并等待资源
3)不可抢夺资源
4)循环等待资源
2、死锁的 防止策略 :要防止死锁形成,只要采用的资源分配策略能使上述4个条件中有一个条件不成立就可以了。
1)破坏互斥使用资源的条件经常是行不通的。因为资源本身特性就是互斥使用的。
2)要破坏“占有并等待条件”则可以采取两种办法: 静态分配 和 释放已占资源 .
静态分配 也称为 预分配资源 ,要求每一个进程在开始执行前就申请它所需要的全部资源,仅当系统能满足进程的资源申请要求且把资源分配给进程后,该进程才能开始执行。
释放已占资源 就是指进程申请资源时必须没有占用资源,如果已经占用了资源就要先归还所占的资源再申请。
3)实现 可抢夺式分配 :如果一个进程已经占有了某些资源又要申请新资源,而新资源不能满足(已被其它进程占用)必须等待时,系统可以抢夺该进程已占有的资源。
4)实现 按序分配 :把系统中所有资源排一个顺序,对每一个资源给一个确定的编号,规定任何一个进程申请两个以上的资源时,总是先申请编号小的资源,再申请编号大的资源。
2017年自考工学类“操作系统原理”复习资料(9).doc正在阅读:
2017年自考工学类“操作系统原理”复习资料(9)07-31
北京平谷2019年考研报名入口点击进入07-28
8月24日新生录取截止!2023年山东烟台莱州市中小学招生入学安排公布08-22
我喜爱的兔子作文200字08-18
哄人睡觉的小故事10篇06-03
飞翔在四季中作文600字12-21
吃货妈妈作文500字11-04
2022中国银行审计分部广东分部春季招聘信息【4月12日24点截止报名】04-21
安徽2020年春季学期普通高校学生返校信息采集系统12-19
忘不了的师生情作文550字08-01