银行家算法避免死锁的研究与实现_毕业论文(编辑修改稿)内容摘要:

设计) 9 图 7 试分配后,安全性检查的程序流程图 5 程序分析测试 分模块分析与测试 ( 1)初始化系统资源模块 Init_process 的测试 图 8 初始化系统资源模块 Init_process 的测试 N Y i m。 m。 恢复系统资源 i=0 i ++。 开始 Int i。 结束 银行家算法避免死锁的研究与实现 10 按提示输入,以 1 结束整个初始化过程,并打印结果。 起初效果不理想,经过一些调整后,显示才比较理想。 如图 8 所示。 (2)试分配模块 Attempt_Allocation 的测试 图 9 试分配模块 Attempt_Allocation 的测试 试分配模块,主要是在系统进入第一次安全检查后,对系统资源的一次尝试性分配,试分配完成后,相关的数据结构被修改。 如图 9 所示。 (3)安全模块 Safety_Algorithm 的调试 试分配前的安全算法,结果如果输出一个安全性序列,并且经过人工检查该安全性序列,确实有效,则该模块正确 ,如图 10 所示;如果系统不安全,打印出相关信息,返回上一层。 如图 11所示。 图 10 安全模块 Safety_Algorithm 的调试的安全状态 图 11 安全模块 Safety_Algorithm 的 调试的不安全状态 试分配后的安全算法,结果如果输出一个安全性序列,并且经过人工检查该安全性序列,确实有效,则该模块正确,如图 12 所示;否则,之前的试分配作废,恢复试分配前的资源状态。 如图 13 所示。 长治学院学士学位论文(设计) 11 图 12 试分配后输出一个安全性序列 图 13 试分配后不安全状态的资源恢复 集成测试 各模块测试通过后,集成在一起测试,系统初始资源和模块测试时保持一致,以下是测试用例以及结果, 基本包括了该算法的所有情况。 ( 1) 06: 结果: 无此进程。 ( 2) 01: Request(2,0,2) 结果: 系统不能满足。 ( 3) 01: Request(1,0,2) 结果: 两次安全性检查都通过,并打印出最终结果。 ( 4) 00: Request(0,2,0) 结果: 试分配后,系统不安全,试分配作废。 ( 5) 00: Request(0,1,0) 结果: 两次安全性检查都通过,并打印出最终结果。 银行家算法避免死锁的研究与实现 12 6 结论 银行家算法避免死锁的研究与实现作为我的毕业设计。 首先,我在网上收集了一些关于银行家算法的资料,包括它的起源,以及在实际中多个领域的应用,加深了对它的理解。 之后,确定自己设计的算法分四大模块。 首先需要初识化系统资源;其次,安全性检查;再者,试分配;最后是试分配后的安全性检查。 在程序测试中出现了很多问题。 譬如,死循环,逻辑关系的设计不当,还有显示效果不理想等等。 但通过查阅书本,对算法细节重新建立正确的认识后,再通过单步调试后,最终解决。 在集成测试中,由于之前的模块测试做的比较扎实,所以相对只是一些细节上的问题,很快也达到了预期的效果。 参考文献 [1] 严蔚敏 ,吴伟民 .数据结构 (C 语言版 )[M].北京 :清华大学出社 ,20xx. [2] 汤小丹 ,梁红兵 ,哲凤屏 等 .计算机操作系统 (第三版 )[M].西安 :西安电子科技大学出版社 ,20xx. [3] 谭浩强 .C 语言程序设计 [M].北京 :清华大学出版社 ,20xx. [4] 于帆 ,赵妮 .程序设计基础 [M].北京 :清华大学出版社 ,20xx. [5] 罗宇 .操作系统课程 [M].北京 :设计机械工业出版社 ,20xx. [6] 黄水松 ,黄干平 ,曾平 .计算机操作系统 [M].武汉 :武汉大学出版社 ,20xx. [7] 鞠时光 .操作 系统原理 [M].武汉 :武汉理工大学出版社 ,20xx. [8] 何炎祥 ,熊前兴 .操作系统原理 [M].武汉 :华中科技大学出版社 ,20xx. [9] 张丽芬 ,刘美华 .操作系统原理教程 [M].北京 :电子工业出版社 ,20xx. [10] 陈火 .数据结构与算法 [M].广东 :中山大学出版社 ,20xx. [11] 郑扣根 .操作系统概念 (第七版 )[M].北京 :高等教育出版社 ,1992. [12] 赵莉 ,杨国梁 ,孙喁喁 ,徐飞 .Java 程序设计教程 [M].西安 :西安科技大学出版社 ,20xx. [13] 陈向群 ,向勇 ,王雷 .Windows 操作系统原理 (第二版 )[M].北京 :北京机械工业出版社 ,20xx. 长治学院学士学位论文(设计) 13 Bankers Algorithm To Avoid Deadlock Research and Implementation Major:Computer Science and technology Name: Wang Zidan Student ID: 09407227 Supervisor:Shan Fenli Abstract:Bankers algorithm what Dijkstra put forward is the most representative of the algorithm to avoid deadlock, this algorithm can be used for the banking system because of its cash loans. Bankers algorithm is advancing in the premise of ensuring the system security. The first is that security check to process requests, to determine the allocation of resources or not, so as to ensure the safety of the system, to avoid deadlock. This paper on the understanding and analysis of the essential meaning of bankers algorithm as well as the state of the core idea, the algorithm is implemented in the overall design, including the module design of algorithm, and the algorithm of each module through a flow chart, block coding, and testing, the final program in the test, the design ideas on strictly according to the thought of software engineering implementation, to ensure that the design and implementation of feasible, credible. Keywords: bankers algorithm。 deadlock。 avoid deadlock。 secure sequence 银行家算法避免死锁的研究与实现 14 致谢 在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。 尤其要感谢我的论文指导老师 —— 陕粉丽 老师,她对我进行了无私的指导和帮助,不厌其烦的帮助进行论文的修改和改进。 另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。 在此向帮助和指导过我的各位老师表示最 真诚 的感谢。 此外,还要 感谢我的同学和朋友,在我写论文的过程中给予我很多素材,还在论文的撰写和排版 的 过程中提供热情的帮助。 由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师批评和指正。 长治学院学士学位论文(设计) 15 附录 //银行家算法 include include include define M 3 define N 10 define D12 %5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d typedef struct my_process { int num。 int Max[M]。 int Allocation[M]。 int Need[M]。 struct my_process* next。 }process。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。