- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
银行家算法的设计与实现
操作系统课程设计
题目:银行家算法的设计与实现
院 (系):
专 业:
班 级:
学 生:
学 号: 指导教师:
摘 要
Dijkstra的银行家算法是最有代表性的避免死锁的算法,该算法由于能用于银行系统现金贷款的发放而得名。银行家算法是在确保当前系统安全的前提下推进的。对进程请求先进行安全性检查,来决定资源分配与否,从而确保系统的安全,有效的避免了死锁的发生。
该论文在理解和分析了银行家算法的核心思想以及状态的本质涵义的前提下,对算法的实现在总体上进行了设计,包括在对算法分模块设计,并对各个模块的算法思想通过流程图表示,分块编写代码,并进行测试,最后进行程序的测试,在设计思路上严格按照软件工程的思想执行,确保了设计和实现的可行,可信。代码实现采用java语言。
关键词:银行家算法;安全性序列
一.绪论
1.1课题背景
在多道程序系统中,虽可以借助多个进程的并发执行来改善系统的资源利用率,提高系统吞吐量,但可能发生一种危险——死锁,即多个进程在运行过程中因争夺资源而造成的一种僵局,若无外力作用,将无法再向前推进。如此,寻求一种避免死锁的方法便显得有为重要。死锁的产生一般的原因有两点:竞争资源和进程间推进顺序非法。因此,我们只需在当前的有限资源下,找到一组合法的执行顺序,便能很好的避免死锁,我们称它为安全序列。而银行家算法起源于银行系统的发放贷款,和计算机操作系统的资源分配完全符合,因此可以借鉴该算法的思想,设计出一种有效的算法程序,解决该问题。
1.2 课题意义
(1)通过整个算法的设计与实现进一步加深了对算法的理解和多道程序下的计算机系统资源分配现状,为以后进一步的学习打下了良好的基础。
(2)通过这次课程设计加强对操作系统的认识,并且提高自己的分析问题,解决问题和动手能力;
二.概述
2.1 设计目的:
熟悉银行家算法,理解系统产生死锁的原因及避免死锁的方法,加深记忆。
2.2 开发环境:
操作系统 编译环境 生成文件 Windows XP MyEclipse Exe
三.需求分析
3.1 问题描述
运用银行家算法,避免死锁的发生。在确保当前系统安全的前提下推进的。对进程请求先进行安全性检查,来决定资源分配与否,从而确保系统的安全,有效的避免了死锁的发生。
问题的关键在于安全性算法,即找安全性序列。
3.2 基本要求
(1)从键盘输入当前系统的资源信息,包括当前可用资源,每个进程对各类资源的最大需求量,每个进程当前已分配的各个资源量和每个进程尚需要的各个资源量,并显示出结果在界面上。
(2)输入进程请求,按照设计好的安全性算法进行检查,得到结果并输出整个执行过程的相关信息和最终结果(主要包括资源分配表和安全序列)
(3)要求int[] Resource=new int[50]; // 表示资源种类最大数
int[]Process=new int[50]; // 表示某进程个数最大数
int[][]maxneed=new int[50][50]; // 表示某进程对某类资源的最大需求
int[][]allocation=new int[50][50]; // 表示某个进程已分配到某类资源的个数
int[][]need=new int[50][50]; // 表示某个进程尚需要某类资源的个数
int[]avaliable=new int[50]; //表示当前某类资源的可用数
int[] work=new int[50]; /存储当前work[]的值,以便输出
boolean[]finish=new boolean[50]; //代表该进程是否已分配
int[] request=new int[50]; //请求向量
3.3算法整体设计与调用
算法主要分五大块:
(1)首先需要动态的输入当前资源数及进程数,通过resource()方法实现。
(2)需要初始化iniship(),存储系统当前状态信息;
(3)调用安全算法isSecurity(),检测当前系统安全状态,若安全则进行下一步,否则打印相关信息,程序退出。
(4) 调用试分配函数isContinue(),进行试分配,若试分配成功,修改相关数据结构,打印当前系统资源分布图,转下一步,否则,打印提示信息,接收其他请求向量。
(5) 再次调用安全性算法,检查试分配以后的系统安全性,若安全打印安全性序列和当前系统资源分布图,并进入新一轮的执行。否则之前的试分配作废,恢复试分配之前的数据结构,输出相关提示信息,接收下一个进程请求四.核心算法及流程图
4.4.1(1)先初始化相关数据结构
for(int i=0;ir
您可能关注的文档
- dsp实现mp3解码.doc
- JSP技术发展史 外文文献及翻译.doc
- KH-T68镗床电路智能实训考核台.doc
- KH-Z35摇臂钻床设计.doc
- LED显示棒的设计.doc
- OpenGL是一种APl,不是语言 【振动数据反演图像设计】英文文献集译文.doc
- PHOTOSHOP软件设计.doc
- Protel99SE课程论文.doc
- RTP数据传输协议 翻译原文.doc
- RTP数据传输协议 译文.doc
- 中国国家标准 GB/T 45390-2025动力锂电池生产设备通信接口要求.pdf
- 中国国家标准 GB/T 45393.2-2025信息技术 建筑信息模型(BIM)软件 第2部分:参数化模型.pdf
- GB/T 45393.2-2025信息技术 建筑信息模型(BIM)软件 第2部分:参数化模型.pdf
- 《GB/T 45393.2-2025信息技术 建筑信息模型(BIM)软件 第2部分:参数化模型》.pdf
- GB/T 10184-2025电站锅炉性能试验规程.pdf
- 海尔智家股份有限公司海外监管公告 - 海尔智家股份有限公司2024年度环境、社会及管治报告.pdf
- 上海复旦张江生物医药股份有限公司2024 环境、社会及管治报告.pdf
- 中国邮政储蓄银行股份有限公司中国邮政储蓄银行2024年可持续发展报告.pdf
- 豫园股份:2024年环境、社会及管治(ESG)报告.pdf
- 南京熊猫电子股份有限公司海外监管公告 - 2024年度环境、社会及治理(ESG)报告.pdf
最近下载
- 骨科无菌术 手术区域的准备.pptx
- 《海岸带生态系统现状调查与评估技术导则 第7部分:牡蛎礁》(报批稿).pdf VIP
- GB4943-2001 信息技术设备 安全 第1部分:通用要求.pdf
- 基于舞弊风险因子理论的柏堡龙财务舞弊案例研究.pdf
- 《海岸带生态系统现状调查与评估技术导则 第5部分:珊瑚礁》(报批稿).pdf VIP
- 建筑施工安全风险辨识和分级管控指南、台账、企业安全风险分级管控清单.docx VIP
- 2025年施工员考试题库及完整答案【名师系列】.docx VIP
- 2025年施工员考试题库附完整答案【夺冠】.docx VIP
- 2025年白蚁防治员岗位职业技能资格知识考试题库(附含答案).docx
- 国际护士节护理操作技能竞赛理论题库.docx
文档评论(0)