操作系统课程设计实验报告用C实现银行家算法.pdf

操作系统课程设计实验报告用C实现银行家算法.pdf

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

操作系统

2

学院:计算机科学与技术学院

班级:计091

学号:姓名:

时间:2011/12/30

目录

1.实验名称……………………3

2.实验目的……………………3

3.实验内容……………………3

4.实验要求……………………3

5.实验原理……………………3

6.实验环境……………………4

7.实验设计……………………4

数据结构设计……………………4

算法设计…………6

功能模块设计……………………7

8.实验运行结果………………8

9.实验心得……………………9

附录:源代码部分…………………9

一、实验名称:

用C++实现银行家算法

二、实验目的:

通过自己编程来实现银行家算法,进一步理解银行家算法的概念及含义,提

高对银行家算法的认识,同时提高自己的动手实践能力;

各种死锁防止方法能够阻止发生死锁,但必然会降低系统的并发性并导致

低效的资源利用率;死锁避免却与此相反,通过合适的资源分配算法确保不会出现

进程循环等待链,从而避免死锁;本实验旨在了解死锁产生的条件和原因,并采用

银行家算法有效地防止死锁的发生;

三、实验内容:

利用C++,实现银行家算法

四、实验要求:

1.完成银行家算法的设计

2.设计有n个进程共享m个系统资源的系统,进程可动态的申请和释放资源,

系统按各进程的申请动态的分配资源;

五、实验原理:

系统中的所有进程放入进程集合,在安全状态下系统收到进程的资源请求

后,先把资源试探性的分配给它;之后,系统将剩下的可用资源和进程集合中的其

他进程还需要的资源数作比较,找出剩余资源能够满足的最大需求量的进程,从而

保证进程运行完毕并归还全部资源;这时,把这个进程从进程集合中删除,归还其

所占用的所有资源,系统的剩余资源则更多,反复执行上述步骤;最后,检查进程集

合,若为空则表明本次申请可行,系统处于安全状态,可以真正执行本次分配,否则,

本次资源分配暂不实施,让申请资源的进程等待;

银行家算法是一种最有代表性的避免的算法;在避免死锁方法中允许进程

动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,

若分配不会导致系统进入不安全状态,则分配,否则等待;为实现银行家算法,系统

必须设置若干;要解释银行家算法,必须先解释操作系统安全状态和不安全状态;

安全序列是指一个进程序列{P1,…,Pn}是安全的,如果对于每一个进程Pi1≤i≤n,

它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pjji当前占有

资源量之和;

安全状态:如果存在一个由系统中所有进程构成的安全序列P1,…,Pn,则系

统处于安全状态;安全状态一定是没有死锁发生;

不安全状态:不存在一个安全序列;不安全状态不一定导致死锁;

我们可以把看作是银行家,操作系统管理的资源相当于银行家管理的资金,

进程向操作系统请求分配资源相当于用户向银行家贷款;

为保证资金的安全,银行家规定:

1当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;

2顾客可以分期贷款,但

文档评论(0)

各类考试卷精编 + 关注
官方认证
内容提供者

各类考试卷、真题卷

认证主体社旗县兴中文具店(个体工商户)
IP属地河南
统一社会信用代码/组织机构代码
92411327MAD627N96D

1亿VIP精品文档

相关文档