- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
银行家算法模拟操作系统课程设计
课程设计(大作业)报告
课程名称: 操作系统课程设计
设计题目: 银行家算法模拟2011级计科一班 王春磊
学 号: ************
指导教师: 段玻
设计时间: 2013年12月23-27日
昆明学院
昆明学院课程设计(大作业)任务书
姓 名:王春磊 院(系):信息技术学院
专 业:计算机科学与技术 学 号:************
任务起止日期:
2013年12月23日——2013年12月27日
课程设计题目:
课程设计要求及任务描述:
根据银行家算法策略,分析数据对象的特征,选择适当的数据结构能够进行算法设计和程序设计,并且使所设计的程序结构清楚,正确易读,并上机调试通过初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风?设计的题目要求达到一定工作量,并具有一定的深度和难度较强的实习、实践能力较强的分析问题、解决问题的能力有明确的设计思路有完整的界面 有图形辅助说明;整个设计过程做出总结。
2013年12月23日 查阅相关资料数据结构及设计4日 绘制流程图5.26 编写实验代码
2013年12月27日 代码测试即撰写课程设计报告课程设计(大作业)成绩
学号:************ 姓名:王春磊 指导教师:段玻
课程设计题目:
银行家算法模拟
完成情况总结:
经过一个星期的努力。我终于完成了银行家算法的模拟过程即相应的文档撰写,虽然程序中还存在一些漏洞,主要是时间原因,没能利用安全检测机制进行数据的输入合法性检查,但程序输入数据不合法时,只能被迫结束程序。
本次课设我的收益最大在于安全检测算法,在于求取安全序列。
通过本次课程设计,我收获很大,首先我对银行家算法有了清楚的认识,认真分析了进程产生死锁的原因,了解了为何要进行死锁的避免,掌握了银行家算法的数据结构,懂得了银行家算法的执行过称,加深了我对其的理解;其次,我对软件工程有了清楚的认识,最后,我也清楚认识到理论联系实际的重要性,动手操作能力和编程逻辑能力在程序设计过程中的重要性,在程序调试程序过程中,我掌握了很多技巧。这为我以后的学习奠定了一定的基础。
指导教师评语:
成绩:
填表时间: 指导教师签名:
课程设计(大作业)报告
题目分析
借以模拟算法,首先由用户输入系统的当前状况,包括系统此时的进程数量、系统中的资源种类数目;各个进程当前对各类资源的最大需求量和当前对其的拥有量。接着系统能够判断出当前状态是否安全,是否能够相应进程的请求。若通过安全检测步骤,表示系统的当前状态是安全感的,系统需要根据相应的算法处理进程的资源请求(能否分配都要予以合理考虑,并给出提示信息)。每处理完一个请求都要显示出系统的当前状况(包括各个进程的资源状况和系统的资源状况)。
程序设计
1.数据结构设计
(1)系统当前拥有的各类资源的数量 available[20],其中每个元素代表一类可用的资源的数目,用available[i]代表系统中第i+1类资源的数目。即用available[0]=m表示系统中当前用有的第一类资源数目为m 。
(2)各个进程的最大需求矩阵max[20][20],用它存储某个进程对某类资源的最大需求量,
用max[i][j]代表第i+1个进程对第j+1类资源的需求量。即用max[0][0]=m表示第一个进程对第一类资源的需求量是m 。
(3)当前所获得的各类资源的数目allocation[20][20],用它来存储各个进程当前所得到的各类资源的数量,用allocation[i][i]表示第i+1个进程所拥有的第j+1类资源的数目。即用allocation[0][0]=m表示第一个进程当前拥有第一类资源的数量为m 。
(4)尚且需求need[20][20],用它来存储各个进程对各类资源的尚且需求量,用need[i][j]表示第i+1号进程对对第j+1类资源的尚需量。即用need[0][0]=m代表第一个进程对第一类资源的尚需量为m ,need[i][j]=max[i][j]-allocation[i][i]。
类的设计
设计一个Banker类,其实例即为一个银行家算法实体,其中包括银行家算法中用到的上述数据结构,都为保护类型。
用两个共有数据成员记录用户输入的进程个数和资源个数,其分别为count_process(资源数),count_source(进程数);
设计一个用于输入系统当前状态的成员函数:
inputData();
一个用于求取安全序列,从而检测系统当前状态是否
文档评论(0)