- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计报告--用高级语言Java设计辅助教学软件(模拟银行家算法)
题目全称:用高级语言Java设计辅助教学软件(模拟银行家算法)
目录
第1章 绪论 3
1.1 课题背景 3
1.2 课题目的 3
1.3 课题意义 3
1.4 银行家算法 3
1.5 死锁 4
1.6 安全性序列 4
第2章 需求分析 5
2.1 环境需求 5
2.2 功能需求 5
2.3 性能需求 5
2.4 界面需求 6
2.5 本章小结 6
第3章 概要设计 7
3.1 总体设计 7
3.1.1 界面设计 7
3.1.2 功能模块设计 7
3.1.3 初始化进程数与资源数 7
3.1.4 初始化资源 7
3.1.5 资源状况的显示 7
3.1.6 申请资源Request 8
3.2 本章小结 8
第4章 详细设计 9
4.1 开发环境介绍 9
4.2 主要功能模块简介 9
4.2.1 概述 9
4.2.2 程序工作流程 10
4.2.3 界面设计简介 10
4.2.4 面向对象的思想 10
4.2.5 MVS模式 11
4.3 主要模块详细设计 11
4.3.1 模型类和边缘类 11
4.3.2 模型类 11
4.3.3 边缘类 12
4.3.4 银行家算法核心类safety.java 12
4.3.5 算法流程 12
4.3.6 safety.java源代码 14
4.3.7 简要说明 17
4.4 界面 17
4.5 本章小结 18
第5章 测试及成果展示 19
5.1 测试环境 19
5.1.1 硬件环境 19
5.1.2 软件运行软件环境 19
5.1.3 测试方法和工具 19
5.2 测试用例和结果 19
5.2.1 测试范围 19
5.2.2 界面测试 19
5.2.3 软件工作原理模拟过程测试 20
5.3 成果展示 23
5.4 本章小结 23
参考文献 24
绪论
课题背景
在多道程序系统中,虽可以借助多个进程的并发执行来改善系统的资源利用率,提高系统吞吐量,但可能发生一种危险——死锁,即多个进程在运行过程中因争夺资源而造成的一种僵局,若无外力作用,将无法再向前推进。如此,寻求一种避免死锁的方法便显得有为重要。死锁的产生一般的原因有两点:竞争资源和进程间推进顺序非法。因此,我们只需在当前的有限资源下,找到一组合法的执行顺序,便能很好的避免死锁,我们称它为安全序列。而银行家算法起源于银行系统的发放贷款,和计算机操作系统的资源分配完全符合,因此可以借鉴该算法的思想,设计出一种有效的算法程序,解决该问题。
课题目的
进一步理解利用银行家算法避免死锁的问题。
在了解和掌握银行家算法的基础上,编制银行家算法通用程序,将调试结果显示在计算机屏幕上,再检测和笔算的一致性。
理解和掌握安全序列、安全性算法。
通过整个算法的设计与实现进一步加深了对算法的理解和多道程序下的计算机系统资源分配现状,为以后进一步的学习打下了良好的基础。
银行家算法
我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。为保证资金的安全,银行家规定:
当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;
顾客可以分歧贷款,但贷款的总数不能超过最大需求量;
当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款;
当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。
死锁
死锁是进程死锁的简称,是由Dijkstra于1965年研究银行家算法时首先提出来的。是指多个进程循环等待它方占有的资源而无限期地僵持下去的局面。很显然,如果没有外力的作用,那麽死锁涉及到的各个进程都将永远处于封锁状态。?它是计算机操作系统乃至并发程序设计中最难处理的问题之一。实际上,死锁问题不仅在计算机系统中存在,在我们日常生活中它也广泛存在。
在计算机系统中,涉及软件,硬件资源都可能发生死锁。例如:系统中只有一台CD-ROM驱动器和一台打印机,某一个进程占有了CD-ROM驱动器,又申请打印机;另一进程占有了打印机,还申请CD-ROM。结果,两个进程都被阻塞,永远也不能自行解除。
安全性序列
安全序列的的实际意义在于:系统每次进行资源分配后,如果对于系统中
新的资源状况,存在一个安全
您可能关注的文档
- 建章二路施工组织设计(提交版).doc
- 建电毕业设计--供配电系统.doc
- 建筑土木毕业设计中英文翻译--建筑及高层建筑的组成.doc
- 建筑土木毕业设计中英文翻译--新型高层建筑物结构交错排列剪力墙结构.doc
- 建筑安全课程设计--扣件式钢管脚手架设计方案.doc
- 建筑学外文翻译--通过开发公共地下空间为德黑兰市提供所需的绿色空间与宏 大的建筑.doc
- 建筑工程管理的毕业设计--某六层居民楼施工组织设计.doc
- 建筑材料外文翻译--普通硅酸盐水泥中掺入硅灰和石膏对水化反应的影响.doc
- 建筑环境与设备工程(暖通)外文翻译---未来的热舒适性——优越性和期望值.doc
- 建筑环境与设备工程毕业设计--宾馆中央空调系统设计.doc
文档评论(0)