银行家算法c++语言(流程图代码全).pdfVIP

银行家算法c++语言(流程图代码全).pdf

  1. 1、本文档共18页,可阅读全部内容。
  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文档。上传文档
查看更多

操作系统教程

——银行家算法

院系计算机与软件学院

班级08软件工程2班

学号066

姓名何丽茗

一、实验目的

银行家算法是避免死锁的一种重要方法。通过编写一个模拟动态资源分配的银行家算法

程序,进一步深入理解死锁、产生死锁的必要条件、安全状态等重要概念,并掌握避免死锁

的具体实施方法。

二、实验内容

根据银行家算法的基本思想,编写和调试一个实现动态资源分配的模拟程序,并能够有

效地防止和避免死锁的发生。

三、实验方法

1.算法流程图

开始

输入资源数m,及各类资源总数,初始化

输入进程数n,

Y

i≤n

N

输入进程i的最大需求向量

N

max≤资源总数

提示

Y错误

i加1

2.算法数据结构

1)可利用资源向量Available,它是一个最多含有100个元素的数组,其中的每一个元素

代表一类可利用的资源的数目,其初始值是系统中所配置的该类全部可用资源数目。其

数值随该类资源的分配和回收而动态地改变。如果Available(j)=k,标是系统中现有j

类资源k个。

2)最大需求矩阵Max,这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程

对m类资源的最大需求。如果Max(i,j)=k,表示进程i需要j类资源的最大数目为k。

3)分配矩阵Allocation,这也是一个n×m的矩阵,它定义了系统中的每类资源当前一分

配到每一个进程的资源数。如果Allocation(i,j)=k,表示进程i当前已经分到j类资

源的数目为k。Allocation表示进程i的分配向量,有矩阵Allocation的第i行构成。

i

4)需求矩阵Need,这还是一个n×m的矩阵,用以表示每个进程还需要的各类资源的数

目。如果Need(i,j)=k,表示进程i还需要j类资源k个,才能完成其任务。Needi

表示进程i的需求向量,由矩阵Need的第i行构成。

5)上述三个矩阵间存在关系:Need(i,j)=Max(i,j)-Allocation(i,j);

3.银行家算法

设Request[i]是进程i的请求向量,如果Request[i,j]=K,表示进程i需要K个j类型的资

源。当i发出资源请求后,系统按下述步骤进行检查:

1)如果Requesti≤Need,则转向步骤2;否则,认为出错,因为它所请求的资源数已超

过它当

文档评论(0)

180****5237 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档