银行家算法报告和代码

.

.

课程设计(论文)

题 目: 银行家算法 院 (系): 信息与控制工程系 专业班级: 姓 名: 学 号: 指导教师:

2016年 1 月 15日

.

西安建筑科技大学华清学院课程设计(论文)任务书

专业班级: 学生姓名: 指导教师(签名):

一、课程设计(论文)题目

银行家算法:设计一个n个并发进程共享m个系统资源的程序以实现银行家算法。

二、本次课程设计(论文)应达到的目的

操作系统课程实践性比较强。课程设计是加强学生实践能力的一个强有力手段。课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。

本题目要达到目的:了解多道程序系统中,多个进程并发执行的资源分配。掌握银行家算法,了解资源在进程并发执行中的资源分配情况。掌握预防死锁的方法,系统安全状态的基本概念。

三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)

要求:

1)能显示当前系统资源的占用和剩余情况。

2)为进程分配资源,如果进程要求的资源大于系统剩余的资源,不与分配并且提示分配不成功; 3)撤销作业,释放资源。

编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁的发生。

银行家算法分配资源的原则是:系统掌握每个进程对资源的最大需求量,当进程要求申请资源时,系统就测试该进程尚需资源的最大量,如果系统中现存的资源数大于或等于该进程尚需求资源最大量时,就满足进程的当前申请。这样就可以保证至少有一个进程可能得到全部资源而执行到结束,然后归还它所占有的全部资源供其它进程使用。

四、应收集的资料及主要参考文献:

操作系统经典算法的编程实现资料非常丰富,可以在图书馆找书籍或在因特网上找资料,都很容

易找到,但是大部分代码是不全的,不能直接运行,希望大家只是把它当参考,编码还是自己做。

参考文献:

【1】汤小丹、梁红兵、哲凤屏、汤子瀛 编著.计算机操作系统(第三版).西安:西安电子科技大学出版社,2007.5

【2】史美林编.计算机操作系统教程.北京:清华大学出版社,1999.11

【3】徐甲同编著.操作系统教程.西安:西安电子科技大学出版社,1996.8 【4】Clifford,A.Shaffer编著.数决结构与算法分析(C++版).北京:电子工业出版社,2005.7

【5】蒋立翔编著.C++程序设计技能百练.北京:中国铁道出版社,2004.1

五、审核批准意见

教研室主任(签字)

.

.

设计总说明

我们可以把操作系统看成是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配,若没超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配,否则也要推迟。

关键字:死锁,安全序列,银行家算法进程

.

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4