- 1、本文档共82页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章进程管理6[死锁问题、线程]
3.5 死锁问题;3.5.1 死锁的基本概念;?资源的概念;根据资源性质:可剥夺(抢占)和不可剥夺(抢占)资源。
可抢占资源—指资源占有进程虽然需要使用该资源,但另一个进程却强行把资源从占有者进程处抢来。
不可抢占资源—指只有占用者进程不再需要使用该资源而主动释放资源外,其它进程不得在占有者进程使用资源过程中强行抢占。
; ;?死锁的定义;判断;参与死锁的进程最少是两个
(两个以上进程才会出现死锁)
参与死锁的进程至少有两个已经占有资源
参与死锁的所有进程都在等待资源
参与死锁的进程是当前系统中所有进程的子集
注:如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃;?产生死锁的原因;竞争资源;P1;例:进程P1、P2并发执行。
共享资源R1、R2;死锁模型;?产生死锁的四个必要条件;生产者—消费者问题
avail-生产者用信号量,记录缓冲区空单元个数。
Full—消费者信号量,记录产品个数。
Mutex—互斥信号量。
;deposit( data) remove (data)
begin begin
p(avail) p(full)
p(mutex) p(mutex)
送数据入缓冲区某 取缓冲区中某单元
单元 数据
v(full) v(avail)
v(mutex) v(mutex)
end end
;在前述若pv操作使用不当,会引起死锁。把生产者进程两个p操作次序调换一下,先执行P(mutex),后执行P(avail)
P(mutex) 互斥
P(avail) 判断 缓冲区满,不能送,从消费者执行。
那么当缓存区满且消费者此时不再临界区中,执行到互斥P(mutex)后,消费者进程想进入临界区,但被阻塞在外。
若生产者希望进入临界区,也被阻塞,于是两个进程无限止地相互等待对方来唤醒自己,两个进程陷入死锁。
;1、预防死锁:
通过设置某些限制条件,去破坏死锁四个必要条件中的一个或多个,来防止死锁。
较易实现,广泛使用,但由于所施加的限制往往太严格,可能导致系统资源利用率和系统吞吐量的降低。;;;;3.5.2 死锁的排除方法;
1鸵鸟算法(置之不理)
解决死锁的最简单方法就是鸵鸟算法。即像鸵鸟一样,当遇到危险时,将头埋进沙子里,假装毫无问题。
当死锁在计算机中很少出现时,比如说每五年或更长时间才出现一次时,人们就不必花费更多的精力去解决它,而是采用类似鸵鸟一样的办法忽略它。
以UNIX系统为例,它潜在地存在死锁,但它并不花功夫去检测和解除死锁,而是忽略不去理它。; UNIX系统允许创建的进程总数是由进程表中包含的PCB个数决定的。因此,PCB资源是有限资源。如果由于进程表中已经无空闲的PCB而使创建子进程操作(FORK)失败,则执行FORK操作的程序可以等待一段时间之后再试。
出现这种情况的可能性是非常小的,但还是有可能发生的。一旦出现,只要忽略原进程已运行情况的现场,重新启动机器让它们重新运行即可。
假定UNIX系统有100个PCB项,10个进程正在运行,每个需要创建12个子进程。;在每个进程已经创建9个进程后,原来的10个进程和新创建的90个子进程已用完了进程表。这样,原来的10个进程现在都处于创建子进程的无限循环中——死锁。出现这种情况的可能性是非常小的,但还是有可能发生的。一旦出现,只要忽略原进程已运行情况的现场,重新启动机器让它们重新运行即可。
;
;(1):防止部分分配(摒弃请求和保持条件); (2) 防止“不剥夺”条件的出现
采用的策略:一个已经保持了某些资源的进程,当它再提出新的资源要求而不能立即得到满足时,必须释放它已经保持的所有资源,待以后需要时再重新申请。
实现比较复杂,且要付出很大代价;此外,还因为反复地申请和释放资源,而使进程的执行无限地推迟,延长了周转时间,增加了系统的开销,降低了系统吞吐量。(例如打印机打印的结果不连续)
;(3).防止“环路等待”条件的出现。;优点:资源利用率和系统吞吐量与另两种方法相比有较明显的改善。
缺点:
为系统中各
您可能关注的文档
- 第3章影响健康的因素.ppt
- 第3章市场营销战略.ppt
- 第3章弹性波的相互作用.ppt
- 第3章弹性地基的应力及变形.ppt
- 第3章家禽的品种与育种.ppt
- 第3章心理卫生xyyadmin1779820120223095858.ppt
- 第3章技术经济分析与评价的程序及指标体系.ppt
- 第3章房产图绘制.ppt
- 第3章数学悖论概率论悖论.ppt
- 第3章数字图像处理课件.ppt
- 2025年中国锻铁围栏市场调查研究报告.docx
- 2025年中国椭圆型市场调查研究报告.docx
- 2025年中国无蔗糖原味豆浆市场调查研究报告.docx
- 2025-2031年中国泛在电力物联网行业发展运行现状及投资潜力预测报告.docx
- 2025年中国制袋机零件市场调查研究报告.docx
- 2025年中国智能除垢型电子水处理仪市场调查研究报告.docx
- 2025-2031年中国甘肃省乡村旅游行业市场深度研究及投资策略研究报告.docx
- 2025-2031年中国干海产品行业市场发展监测及投资战略规划报告.docx
- 2025年中国全铝图解易拉盖市场调查研究报告.docx
- 2025年中国人造毛皮服装市场调查研究报告.docx
文档评论(0)