银行家算法通用演示程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操 作 系 统 课 程 设 计 报 告 课程设计名称:银行家算法通用演示程序 专 业: 班 级: 学 号: 学生 姓名: 指导 教师: 2014年3月15日 摘 要 Dijkstra提出的银行家算法,是最具代表性的避免死锁的算法。 本文对如何用银行家算法来处理操作系统给进程分配资源做了详细的说明,包括需求分析、概要设计、详细设计、测试与分析、总结、源程序清单。? 首先做了需求分析,解释了什么是银行家算法,并指出它在资源分配中的重要作用。 然后给出了银行家算法的概要设计,包括算法思路、步骤,以及要用到的主要数据结构、函数模块及其之间的调用关系等。 在概要设计的基础上,又给出了详细的算法设计,实现概要设计中定义的所有函数,对每个函数写出核心算法,并画出了流程图。 接着对编码进行了测试与分析。 最后对整个设计过程进行了总结。 关键词:安全状态;安全序列;银行家算法;安全性算法;安全序列;流程图。 目录 前言……………………………………………..……………………………1 一、实验目的…………………………………………………………………..22 二、实验内容…………………………………………………………………..2 三、实验步骤…………………………………………………………………..3 需求分析…………………………………………………………………….3 概要设计…………………………………………………………………….3 详细设计…………………………………………………………………….1、此程序调用函数所用的头文件和全局变量.......................4 .......................4 3、显示可用资源和各个进程资源非配情况的函数showdata()........54、进程资源分配函数int changdata(int i) .....................6 5、安全性检测函数safe()......................................6 6、利用银行家算法对申请资源对进行判定函数share()...........7 7、添加资源,并检测安全性addresources().......................7 8、删除资源,并检测安全性函数..................................8 9、删除进程,并检测安全性......................................8 10、修改资源数量并检测安全性changeresources()................9 11、添加进程,并检测安全性.....................................9 12、显示菜单函数version()....................................9 13、初始化资源种类和大小、进程,并检测安函数init()............10 14、密码初始化函数char *get_password(const char *prompt) ....11 15、密码设置函数mima( ) .....................................12 16、主函数void main( ) ......................................12 17、画出函数和过程调用关系流程图..............................13 调试分析……………………………………………………………………14 测试结果(图)……………………………………………………………16 (6)使用说明:………………………………………………………………….………………………………………………………………….20 五、附录:程序清单………………………………………………………21 六、参考资料………………………………………………………………….32 前言 Dijkstra (1965)提出了一种能够避免死锁的调度算法,称为银行家算法。 它的模型基于一个小城镇的银行家,他向一群客户分别承诺了一定的贷款额度,每个客户都有一个贷款额度,银行家知道不可能所有客户同时都需要最大贷款额,所以他只保留一定单位的资金来为客户服务,而不是满足所有客户贷款需求的最大单位。 这里将客户比作进程,贷款比作设备,银行家比作系统。 客户们各自做自己的生意,在某些时刻需要贷款。在某一时刻,客户已获

文档评论(0)

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

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

1亿VIP精品文档

相关文档