《计算机操作系统》银行家算法实验.docxVIP

《计算机操作系统》银行家算法实验.docx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
海南大学三亚学院 《计算机操作系统》课程设计 死锁的避免一一银行家算法 专业班级: 成员: 提交时间: 一、问题描述(标题:宋体四号) 内容:1、解释什么是银行家算法(宋体,小四,行间距 1.5倍) 银行家算法又称“资源分配拒绝”法,其基本思想是,系 统中的所有进程放入进程集合,在安全状态下系统受到进程的请求 后试探性的把资源分配给他,现在系统将剩下的资源和进程集合中 其他进程还需要的资源数做比较,找出剩余资源能满足最大需求量 的进程,从而保证进程运行完成后还回全部资源。这时系统将该进 程从进程集合中将其清除。此时系统中的资源就更多了。反复执行 上面的步骤,最后检查进程的集合为空时就表明本次申请可行,系 统处于安全状态,可以实施本次分配,否则,只要进程集合非空, 系统便处于不安全状态,本次不能分配给他。请进程等待 我们可以把操作系统看作是银行家, 操作系统管理的资源相 当于银行家管理的资金,进程向操作系统请求分配资源相当于用户 向银行家贷款。操作系统按照银行家制定的规则为进程分配资源, 当进程首次申请资源时,要测试该进程对资源的最大需求量,如果 系统现存的资源可以满足它的最大需求量则按当前的申请量分配资 源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该 进程已占用的资源数与本次申请的资源数之和是否超过了该进程对 资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试 系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按 当前的申请量分配资源,否则也要推迟分配。 2、银行家算法提出的原因 在多道程序系统中,虽可借助于多个进程的并发执行,来改 善系统的 资源利用率,提高系统的吞吐量,但可能发生一种 危险一一死锁。所谓死锁(Deadlock),是指多个进程在运行中因争 夺资源而造成的一种僵局 (Deadly_Embrace)当进程处于这种 僵持状态时,若无外力作用,它们都将无法再 向前推进。一组 进程中,每个进程都无限等待被该组进程中另一进程所占有的资 源,因而永远无法得到的资源,这种现象称为进程死锁,这一组 进程就称为死锁进程。 二、 实验目的 1、掌握死锁概念、死锁发生的原因、死锁产生的必要条件 、掌握死锁的预防、死锁的避免 、深刻理解死锁的避免:安全状态和银行家算法 三、 问题分析 1、什么是死锁?死锁如何产生? 所谓死锁,是指多个进程在运行过程中因争夺资源而造成的 一种僵局,当进程处于这种僵持状态时,若无外力的作用,它 们都将无法再向前推进。 死锁产生的原因: 竞争资源 进程间推进顺序非法 产生死锁的必要条件:互斥条件,请求和保持条件不剥夺条 件,环路等待条件。 只要下面四个条件中有一个不具备,系统就不会出现死锁。 互斥条件:即某个资源在一段时间内只能由一个进程占有,不 能同时被两个或两个以上的进程占有。 不可抢占条件:进程所获得的资源在未使用完毕之前,资源申 请者不能强行地从资源占有者手中夺取资源, 而只能由该资源的 占有者进程自行释放。 占有且申请条件:进程至少已经占有一个资源,但又申请新的 资源;由于该资源已被另外进程占有,此时该进程阻塞;但是, 它在等待新资源之时,仍继续占用已占有的资源。 循环等待条件:存在一个进程等待序列{P1,P2,…,Pn},其中 P1等待P2所占有的某一资源,P2等待P3所占有的某一资 源,……,而Pn等待P1所占有的某一资源,形成一个进程循环 等待环。 2、死锁对多道程序系统带来的影响? 在多道程序系统中,虽可借助于多个进程的并发执行,来改善系 统的 资源利用率,提高系统的吞吐量,但可能发生一种危险一一 死锁。所谓死锁(Deadlock),是指多个进程在运行中因争夺资源而造成 的一种僵局 (Deadly_Embrace)当进程处于这种僵持状态时,若无 外力作用,它们都将无法再 向前推进。一组进程中,每个进程都 无限等待被该组进程中另一进程所占有的资源,因而永远无法得到 的资源,这种现象称为进程死锁,这一组进程就称为死锁进程 。 3、 如何预防死锁? 摒弃“请求和保持”条件,摒弃“不剥夺”条件,摒弃 “环路等待”条件 4、 死锁的预防:什么是安全态? 如何保证多个进程在某个时刻是处 于安全态的? 所谓安全态是指系统能按某种进程顺序 (P1, P2,…,Pn) (称(P1, P2,…,Pn)序列为安全序列)来为每个进程 Pi分 配其所需资源,直至满足每个进程对资源的最大需求,使每个 进程都顺利的完成。 四、设计方案 1、数据结构的建立 1) .可利用资源向量AVAILABLE这是一个含有M个元素的数组, 其中的每一个元素代表一类可利用的资源数目,其 3初始值是系统中 所配置的该类全部可哦那个资源的数目,其数值随该类资源的分配和 回收而动态的改变。 2) .最大需求矩阵MAX

文档评论(0)

cooldemon0601 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档