- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多资源银行家算法研究和实现
多资源银行家算法研究和实现
摘要:在通常情况下,计算机的资源有限,比如只有一台打印机或者只有有限的内存,并且很多资源是独占性的资源,在任意时刻这些资源只能被一个程序所占用,一旦这些资源被多个程序同时访问,就会引发程序对资源的竞争,容易引起“死锁”现象。银行家算法便是针对死锁问题而诞生的。该文简介了死锁的原理,对解决多个资源下死锁问题的银行家算法进行了讨论,并用C语言对其进行了简单的模拟。
关键词:死锁;多资源竞争;银行家算法
中图分类号:TP312 文献标识码:A 文章编号:1009-3044(2013)18-4229-05
在计算机系统中,一个运行的程序被抽象成一个进程,能利用的内存、磁盘储存空间、显示屏等则可以被抽象成资源。一般来说,资源都是有限的,而操作系统中存在的进程对资源的需求却经常大大超出了实际的资源量,并且很多进程具有排他性,资源也具有独占性。此时,一旦若干个进程对某些相同的资源有需求,这些进程间便产生了竞争。在竞争的过程中,若有排他性的进程占有了独占性的资源,导致其他的进程得不到该资源,同时该进程也同样无法获取被其他排他性进程占有的独占性资源,由此产生的结果,就是所有与此有关的进程都无法满足自已的需求,这些进程也就进入了阻塞状态。如果这一状态无法转变,这最终会导致计算机程序永远进入了等待状态,无法运行,即死锁状态。
产生死锁的原因和条件其实是比较明确的,并且针对死锁这一灾难性问题,人们也想出了很多解决方案。下面,让我们先来详细地研究一下多资源背景下的死锁问题。
1 多资源死锁问题分析
大部分的死锁问题都和资源有关。
在计算机设备中,资源可分为两类,一类是可抢占资源,另一类是不可抢占资源。可抢占资源是指可以从占有它的进程中被任意释放出来并且不会引起任何不良后果的一类资源,这类资源通常不会引起死锁问题,因为一旦产生死锁的迹象,此类资源可以立即被释放,从而为其他进程所用,使得进程不会永久保持阻塞状态。不可抢占资源则正好相反,此类资源一旦被进程所占有,则无法被释放,除非占有它的进程主动释放。
所以准确来说,大部分的死锁问题和不可抢占资源有关。
对于一个进程来说,使用一个资源一般经历如下三个阶段:请求资源、使用资源、释放资源。当请求资源失败时,进程一般会进入等待状态,也就是阻塞状态,直到该资源可用。
在正在运行的操作系统中,会存在很多个进程,这些进程共同组成了一个进程集合。对于这个进程集合来说,若其中的每个进程都在等待只能由其他进程才能引发的事件,则该进程集合就陷入了死锁状态。这是由于每个进程都在等待,所以没有一个进程能引发唤醒其他进程的事件,由此,所有的进程都会无限期地等待下去。从图论的角度来说,这个进程集合形成了一个环。
正如前文所述,大部分的死锁问题都和不可抢占资源有关,这是因为部分进程占有着不可被其他进程抢占的资源,同时这些进程也无法得到被其他进程占有的不可抢占资源,于是,所有的进程都在等待其他进程使用完资源,等待资源被释放,此时便陷入了死锁境地。
在1971年,Coffman等人总结了资源死锁的四个必要条件,具体如下:
1)互斥条件,即每个资源的状态要么为已经分配给一个进程,要么就是可用的;
2)占有和等待条件,即已经得到某些资源的进程可以在请求新的资源;
3)不可抢占条件,即已经分配给某进程的资源不能强制性的被抢占,只能被占有它的进程显示地抢占;
4)环路等待条件;即系统中有两个或两个以上的进程组成的一条环路,改环路中每个进程都在等待下一个进程释放资源。
当死锁发生时,以上四个条件必须全部满足。
所以一般来说,要想将解决死锁问题,就可以从破坏这四个条件中的一个入手。下面我们来分析一下多资源背景下的银行家算法。
2 多资源银行家算法
多资源银行家算法是由单资源银行家算法推导而来,所以先来分析一下单资源的情况。
银行家算法来自于银行家向客户提供贷款的模型。假设一个银行家有10个单位的资源,有4个客户A、B、C、D要向其贷款,其已贷款数和最大需求如图1所示:
在这里,客户可以在做生意的同时只贷款一部分,并且贷款数不超过最大需求量,客户在贷款到了最大需求后可以做成生意,便可以还贷款。这里可以将客户看成进程,而将银行家看成资源。
当贷款一定时间后,每个客户的贷款数如下所示:
此时银行家手里只剩2个单位的贷款数,毫无疑问,此时若客户A将最后的2个单位的贷款借走,则A由于没有达到其最大需求,因此无法完成生意,也就无法还款,其他的客户也就无法接到贷款,由此便陷入了死锁状态。然而同样毫无疑问,若银行家贷款给C,则一切好办。
由上可知,单资源银行家算法事先了解了进程的资源需
您可能关注的文档
- 外用药物制剂药品生产质量管理规范实施现状分析和研究.doc
- 外生型农民资金互助社成因运行机制和效果分析.doc
- 外研版和人教版高中英语教材对比分析.doc
- 外研社版和人教社版高中英语教材文本之比较.doc
- 外科产ESBLs大肠埃希菌感染临床调查和耐药性研究.doc
- 外科基本技能实践教学改革和研究.doc
- 外科围手术期感染和抗生素联合应用分析报告.doc
- 外科学课程教学方法优化和创新.doc
- 外科手术和正畸牵引联合矫治儿童埋伏阻生牙临床效果分析.doc
- 外科实验教学改革和实践.doc
- 2024年陆川县事业单位联考招聘考试历年真题带答案.docx
- 2024年翼城县事业单位联考招聘考试真题汇编新版.docx
- 2024年荔波县事业单位联考招聘考试真题汇编完美版.docx
- 2025年曲阳县事业单位联考招聘考试真题汇编最新.docx
- 2024年静乐县事业单位联考招聘考试真题汇编新版.docx
- 2025年石柱县事业单位联考招聘考试历年真题新版.docx
- 2024年蓝田县事业单位联考招聘考试真题汇编汇编.docx
- 2025年辽阳县事业单位联考招聘考试真题汇编完美版.docx
- 2026广东深圳市事业单位集中招聘高校毕业生658人笔试参考题库(医疗岗162人)附答案解析.docx
- 2026年益阳职业技术学院单招职业技能测试题库推荐.docx
最近下载
- 米非司酮临床应用指南(2025版)解读.pptx VIP
- 【MOOC期末】《电子技术实习SPOC》(北京科技大学)期末慕课答案.docx VIP
- 《 计算机组成与系统结构》课程考试试卷(13卷).doc VIP
- 职工代表选举方案及选票.doc VIP
- 自我的认同、反思与重构——陈雪小说中的边缘人研究.pdf VIP
- 中国计量大学2021-2022学年《Python程序设计》期末考试试卷(B卷)及标准答案.docx
- 第一届职工代表大会职工代表选举办法.pdf VIP
- 04S520埋地塑料排水管道施工图集.docx VIP
- 一种陶瓷浆料的制备方法及陶瓷隔膜和锂离子电池.pdf VIP
- 道路塌方工程施工方案(3篇).docx VIP
原创力文档


文档评论(0)