- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
目录
摘要2
前言3
正文4
1.设计目的4
2.设计内容4
3.设计要求4
4.设计思想4
5.实现方法5
6.主要用到的数据结构5
7.银行家算法步骤5
8.安全性算法步骤6
9.程序流程图6
(1).系统主要过程流程图7
(2).银行家算法流程图8
(3).安全性算法流程图9
10.各伪块代码算法10
(1)显示资源矩阵10
(2)对申请资源进行判定11
(3)添加资源12
(4)删除资源13
(5)修改资源14
11.调试分析15
(1)初始化结果15
(2)检测系统资源分配是否安全结果15
(3)当资源分配不合理时的情况16
(4)当资源分配合理时的情况17
(5)返回17
总结18
参考文献19
致谢20
源程序代码21
摘要
Dijkstra提出的银行家算法,是最具代表性的避免死锁的算法。
本设计对如何用银行家算法来处理操作系统给进程分配资源做了详细的说明,包括
设计目的、设计内容、设计要求、设计思想、实现方法、概要设计、测试与分析、总结、
源程序清单。
首先做了设计目的和设计内容,解释了什么是银行家算法,并指出它在资源分配中
的重要作用。
其次,在做了设计的思想和实现方法。
然后给出了银行家算法的概要设计,包括算法思路、步骤,以及要用到的主要数据
结构、函数模块及其之间的调用关系等。
在概要设计的基础上,又给出了详细的算法设计,实现概要设计中定义的所有函数,
对每个函数写出核心算法,并画出了流程图。
接着对编码进行了测试与分析。
最后对整个设计过程进行了总结。
关键词:安全状态;安全序列;银行家算法;安全性算法;安全序列;流程图。
前言
Dijkstra(1965)提出了一种能够避免死锁的调度算法,称为银行家算法。
它的模型基于一个小城镇的银行家,他向一群客户分别承诺了一定的贷款额度,每
个客户都有一个贷款额度,银行家知道不可能所有客户同时都需要最大贷款额,所以他
只保留一定单位的资金来为客户服务,而不是满足所有客户贷款需求的最大单位。
这里将客户比作进程,贷款比作设备,银行家比作系统。
客户们各自做自己的生意,在某些时刻需要贷款。在某一时刻,客户已获得的贷款
和可用的最大数额贷款称为与资源分配相关的系统状态。一个状态被称为是安全的,其
条件是存在一个状态序列能够使所有的客户均得到其所需的贷款。如果忽然所有的客户
都申请,希望得到最大贷款额,而银行家无法满足其中任何一个的要求,则发生死锁。
不安全状态并不一定导致死锁,因为客户未必需要其最大贷款额度,但银行家不敢抱这
种侥幸心理。
银行家算法就是对每一个请求进行检查,检查如果满足它是否会导致不安全状态。
若是,则不满足该请求;否则便满足。
检查状态是否安全的方法是看他是否有足够的资源满足一个距最大需求最近的客
户。如果可以,则这笔投资认为是能够收回的,然后接着检查下一个距最大需求最近的
客户,如此反复下去。
如果所有投资最终都被收回,则该状态是安全的,最初的请求可以批准。
正文
1.设计目的
(1)掌握死锁的建立;
(2)掌握避免死锁的基本方法;
(3)深入了解死锁的特性,以便在解决实际问题中灵活运用它们;
(4)加深对死锁的理解和认识。
2.设计内容
我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,
进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规
则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果
系统现存的资源可以满足它的最大需求量则按当
文档评论(0)