银行家算法操作系统精要.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
银行家算法操作系统精要

课程设计报告 姓 名: xx 学 号:xx 班 级: 13计科 专 业: 计算机科学与技术 指导教师: xx 时 间: 2015-12-31 项目名称: 课程设计五: 银行家算法 贵州大学 计算机科学与信息学院 目 录 一.课程设计目的┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅2 二.课程设计题目描述和要求┅┅┅┅┅┅┅┅┅┅┅┅┅┅2 2.1选定文法的描述┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅2 2.2课程设计要求描述┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅2 2.3实现的功能描述┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅2 三.课程设计实现描述┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅4 3.1实现平台┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅4 3.2课程设计基本思路描述┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅4 3.3算法基本基本原理描述┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅5 3.4代码描述┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅5 3.5演示分析┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅11 四.课程设计总结┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅11 五.参考书目┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅11 一、课程设计目的 了解多道程序系统中,多个进程并发执行的资源分配。 掌握死锁产生的原因、产生死锁的必要条件和处理死锁的基本方法。 掌握预防死锁的方法,系统安全状态的基本概念。 掌握银行家算法,了解资源在进程并发执行中的资源分配策略。 理解避免死锁在当前计算机系统不常使用的原因 二、课程设计题目描述和要求 1. 选定的算法的描述: 银行家可以把一定数量的资金供多个用户使用,为保证资金的安全银行家规定四个条件: (1)当一个用户对资金的最大需求量不超过银行家现有资金时就可接纳该用户;(Request = Available ) (2)用户可以分期贷款,但贷款的总数不能超过最大需求量;(Request=Need)。 (3)当银行家现有的资金不能满足用户的尚需贷款数时,对用户的贷款可推迟支付,但总能在用户有限的时间里得到贷款; (不符合“安全性条件”暂时不给贷款) (4)当用户得到所需的全部资金后,一定能在有限的时间里归还所有的资金。 2.课程设计的要求描述: 在多道程序系统中,虽可借助于多个进程的并发执行来改善系统的资源利用率,提高系统的吞吐量,但可能发生一种危险----死锁。死锁是指多个进程在运行中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法向前推进。银行家算法是最具有代表性的避免死锁的算法,它的基本思想是分配资源之前,判断系统是否是安全的,若是才分配资源。 设计一个n个并发进程共享M个系统资源的程序实现银行家算法。要求包含: 简单的选择界面 能显示当前系统资源的占用和剩余情况 为进程分配资源,如果进程要求的资源大于系统剩余的资源,不予分配并且提示分配不成功。 撤销作业,释放资源。 3.实现的功能描述: 1、先对系统资源进行预设,有A、B、C三个系统资源。 2、再输入三个进程对系统资源的最大需求。 3、再输入当前三个进程已分配的系统资源。 4、进程可以继续对系统资源进行申请,如果进程要求的资源大于系统剩余的资源,不予分配并且提示分配不成功。 5、对系统安全性进行检查,如果系统安全则得出安全序列。 三、课程设计实现描述 1.实现平台 Visual studio 2005 2.课程设计的基本思路描述: 程序运行的最后界面如下所示: 该模拟算法的思路是先预设系统资源-给出进程最大需求-给出进程已分配矩阵-进程再申请资源-计算出需求资源和可利用资源-得出系统安全性。 3. 银行家算法的基本原理描述: 这个部分是按照银行家算法把输入都转换成矩阵,建立available、max、allocation、need、work、finish矩阵,当进程Pi提出资源申请时,系统执行下列步骤: (1)若Requesti[j]≤Need[i,j]【请求小于需求】,转(2);否则错误返回 (2)若Requesti[j] ≤Available[j] 【请求小于库存】, 转(3);否则进程等待 (3)假设系统分配了资源【试分配】,则有: 【库存】 Available [j] :=Available

文档评论(0)

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

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

1亿VIP精品文档

相关文档