- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. . .
..........
操 作 系 统
实
验
报
告
(2)
学院:计算机科学与技术学院
班级:计091
学号:姓名:
时间:2011/12/30
目 录
实验名称……………………………………………………3
实验目的……………………………………………………3
实验内容……………………………………………………3
实验要求……………………………………………………3
实验原理……………………………………………………3
实验环境……………………………………………………4
实验设计……………………………………………………4
7.1数据结构设计……………………………………………………………………4
7.2算法设计…………………………………………………………………………6
7.3功能模块设计……………………………………………………………………7
实验运行结果………………………………………………8
实验心得……………………………………………………9
附录:源代码(部分)…………………………………………………………………9
一、实验名称:
用C++实现银行家算法
二、实验目的:
通过自己编程来实现银行家算法,进一步理解银行家算法的概念及含义,提高对银行家算法的认识,同时提高自己的动手实践能力。
各种死锁防止方法能够阻止发生死锁,但必然会降低系统的并发性并导致低效的资源利用率。死锁避免却与此相反,通过合适的资源分配算法确保不会出现进程循环等待链,从而避免死锁。本实验旨在了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生。
三、实验内容:
利用C++,实现银行家算法
四、实验要求:
1.完成银行家算法的设计
2.设计有n个进程共享m个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动态的分配资源。
五、实验原理:
系统中的所有进程放入进程集合,在安全状态下系统收到进程的资源请求后,先把资源试探性的分配给它。之后,系统将剩下的可用资源和进程集合中的其他进程还需要的资源数作比较,找出剩余资源能够满足的最大需求量的进程,从而保证进程运行完毕并归还全部资源。这时,把这个进程从进程集合中删除,归还其所占用的所有资源,系统的剩余资源则更多,反复执行上述步骤。最后,检查进程集合,若为空则表明本次申请可行,系统处于安全状态,可以真正执行本次分配,否则,本次资源分配暂不实施,让申请资源的进程等待。
银行家算法是一种最有代表性的避免 死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。为实现银行家算法,系统必须设置若干 数据结构。要解释银行家算法,必须先解释操作系统安全状态和不安全状态。安全序列是指一个进程序列{P1,…,Pn}是安全的,如果对于每一个进程Pi(1≤i≤n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj (j i )当前占有资源量之和。
安全状态:如果存在一个由系统中所有进程构成的安全序列P1,…,Pn,则系统处于安全状态。安全状态一定是没有死锁发生。
不安全状态:不存在一个安全序列。不安全状态不一定导致死锁。
我们可以把 操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。
为保证资金的安全,银行家规定:
(1) 当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;
(2) 顾客可以分期贷款,但贷款的总数不能超过最大需求量;
(3) 当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款;
(4) 当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金.
操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程本次申请的资源数是否超过了该资源所剩余的总量。若超过则拒绝分配资源,若能满足则按当前的申请量分配资源,否则也要推迟分配。
六、实验环境:
Win-7系统
Visual C++ 6.0
七、实验设计:
1.数据结构设计
定义结构体:
struct Process//进程属性构成
{
Source claim; //进程最大需求量
Source allocation; //进程占有量
Source claim_allocation;//进程需求量
S
您可能关注的文档
- 2015年河北高考本科二批理科一志愿平行投档分数线排名.doc
- 2015年武汉市中考数学试卷和答案解析(Word版).doc
- 2016《森林资源经营管理》复习试题.doc
- 2016教师结构化面试题试题库(含面试经验的介绍与参考回答).doc
- 2016年B题数学建模论文正稿.doc
- 2016中考语文考点笔顺题.ppt
- 2017年高考三角函数试题.doc
- 2017年高考数学最后一课.ppt
- 2017年抗菌药物临床应用培训教材.ppt
- 2017浙江宁波中考数学试题.doc
- 2024年四平市中心人民医院招考聘用助理护士【综合基础知识500题】高频考点模拟试题及参考答案解析.docx
- 2024年国家海洋环境预报中心第二次招聘拟聘【综合基础知识500题】高频考点模拟试题及参考答案解析.docx
- (试题)技能考试航标工题库检测试卷附答案.docx
- 2024年四川邛崃市招考事业单位工作人员【综合基础知识500题】高频考点模拟试题及参考答案解析.docx
- 2024年国家统计局百色调查队招聘辅助调查员3人(广西)历年【综合基础知识500题】高频考点模拟试题及参考答案解析.docx
- 2022-2023年考核航标工试题精华版附答案.docx
- 2024年国企全国招考每日(5.9)【综合基础知识500题】高频考点模拟试题及参考答案解析.docx
- 2023-2024基础考核航标工试题及答案.docx
- 2024年四川雅安市人大办下属事业单位招考人员【综合基础知识500题】高频考点模拟试题及参考答案解析.docx
- 2024年国务院国资委新闻中心招聘2人历年【综合基础知识500题】高频考点模拟试题及参考答案解析.docx
最近下载
- T CFPA012-2022消防用压接式涂覆碳钢管材及管件.pdf VIP
- 社会支持评定量表(SSRS)调查问卷模板.docx VIP
- 综合英语(2)句子翻译.doc
- 无人机农药喷洒服务协议.pdf
- 正确认识和处理科学技术发展与伦理道德关系.doc VIP
- 2608中级财务会计(二)-国家开放大学-2022年1月(2021秋)期末考试真题及标准答案-会计学(会统),金融(金),会计学(财会),会计学(财会试).pdf
- VDA63-2016--过程审核培训教材.pptx
- 中职幼师专业简笔画第八章_教案.doc VIP
- 《手足口病的防控》课件.pptx VIP
- 二年级100以内的脱式加减法练习题及答案(二年级数学计算题100道).pdf
文档评论(0)