模拟银行家算法实现死锁避免课程设计.doc

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. . 《操作系统》课程设计报告 院 系:计算机与信息工程学院 题 目:模拟银行家算法实现死锁避免 学生姓名: 学生学号: 专业班级: 指导教师: 完成时间:2012年9月6日 评分表: 课题名称 指导教师 评 语 成绩评定 姓 名 成 绩 学 号 日期 年 月 日 目录 TOC \o 1-3 \h \z \u 题 目:模拟银行家算法实现死锁避免 1 评分表: 2 一 课程设计目的 3 二 课程设计内容 3 三 课程设计环境 4 四 课程设计步骤 4 41.需求分析 4 4.1.1 问题的提出 4 4.1.2 银行家算法原理 4 4.1.3银行家算法详细解析 5 4.1.4 银行安全性算法目的 6 4.2概要设计 6 4.2.1 功能模块设计如下: 6 4.2.2 功能模块描述 7 4.3详细设计 7 4.3.1基本数据结构的设计 7 4.3.2算法的设计 8 五 课程设计结果 9 5.1运行结果 9 5.2测试分析 12 六 课程设计心得与体会 12 总结 12 七 参考文献 13 八 程序清单 14 8.1 操作主界面代码: 14 8.2 功能实现代码: 17 一 课程设计目的 在熟练掌握死锁发生原理和解决死锁问题的基础上,利用一种程序设计语言模拟实现利用银行家算法实现死锁避免,一方面加深对原理的理解,另一方面提高学生通过编程根据已有原理解决实际问题的能力,为学生将来进行系统软件开发和针对实际问题提出高效的软件解决方案打下基础。 二 课程设计内容 模拟实现银行家算法对系统资源进行分配,以防止死锁的出现。本课题肯定不可能实现对实际操作系统的资源管理,而是通过对模拟资源数据的处理,检测银行家算法在防止死锁出现的作用。 银行家算法描述: 第一部分:银行家算法(扫描) 1.如果Request=Need,则转向2;否则,出错 2.如果Request=Available,则转向3,否则等待 3.系统试探分配请求的资源给进程 4.系统执行安全性算法 第二部分:安全性算法 1.设置两个向量 (1).工作向量:Work=Available(表示系统可提供给进程继续运行所需要的各类资源数目) (2).Finish:表示系统是否有足够资源分配给进程(True:有;False:没有).初始化为False 2.若Finish[i]=FalseNeed=Work,则执行3;否则执行4(i为资源类别) 3.进程P获得第i类资源,则顺利执行直至完成,并释放资源: Work=Work+Allocation; Finish[i]=true; 转2 请充分理解以上银行家算法描述的核心思想。(详细银行家算法描述见p95) 三 课程设计环境 Windows操作系统 java语言 eclipse编程工具 四 课程设计步骤 41.需求分析 4.1.1 问题的提出 银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系银行家算法统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。为实现银行家算法,系统必须设置若干数据结构。要解释银行家算法,必须先解释操作系统安全状态和不安全状态。 4.1.2 银行家算法原理 我们可以把 操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。 为保证资金的安全,银行家规定: (1) 当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客; (2) 顾客可以分期贷款,但贷款的总数不能超过最大需求量; (3) 当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款; (4) 当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金.   操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档