操作系统课程设计银行家算法报告.doc

上传人:Wo****W 文档编号:69093378 上传时间:2022-12-30 格式:DOC 页数:4 大小:17KB
返回 下载 相关 举报
操作系统课程设计银行家算法报告.doc_第1页
第1页 / 共4页
操作系统课程设计银行家算法报告.doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《操作系统课程设计银行家算法报告.doc》由会员分享,可在线阅读,更多相关《操作系统课程设计银行家算法报告.doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、操作系统课程设计银行家算法报告操作系统-银行家算法课程设计报告 姓 名:学 号:班 级:计科班 专 业:计算机科学与技术 指导老师:时 间:2022 _大学 计算机科学与信息学院 目 录 1 课程设计目的 1 2 课程设计的要求 1 3 课程设计题目描绘 2 4 课程设计之银行家算法原理 2 5 程序构造分析p 及代码实现 4 6 课程设计总结 25 一、课程设计的目的 操作系统是计算机系统的核心系统软件,它负责控制和管理整个系统的资并组织用户协调使用这些资,使计算机高效的工作。操作系统课程设计是操作系统理论课的必要补充,是复习和检验所学课程的重要手段,本课程设计的目的是综合应用学生所学知识,

2、通过实验环节,加深学生对操作系统根本原理和工作过程的理解,进步学生独立分析p 问题、解决问题的才能,增强学生的动手才能。二、课程设计的要求 1分析p 设计内容,给出解决方案要说明设计实现的原理,采用的数据构造。2画出程序的根本构造框图和流程图。3对程序的每一局部要有详细的设计分析p 说明。4代码格式要标准。5设计适宜的测试用例,对得到的运行结果要有分析p 。6设计中遇到的问题,设计的心得体会。7按期提交完好的程序代码、可执行程序和课程设计报告。三、课程设计题目描绘 银行家算法是一种最有代表性的防止死锁的算法。要解释银行家算法,必须先解释操作系统平安状态和不平安状态。平安状态:假如存在一个由系统

3、中所有进程构成的平安序列P1,Pn,那么系统处于平安状态。平安状态一定是没有死锁发生。不平安状态:不存在一个平安序列。不平安状态不一定导致死锁。那么什么是平安序列呢?平安序列:一个进程序列P1,Pn是平安的,假如对于每一个进程Pi(1in,它以后尚需要的资量不超过系统当前剩余资量与所有进程Pj (j “ #include #include #include /定义全局变量 const int _=10,y=10; /常量,便于修改 int Available_; /各资可利用的数量 int Allocationyy; /各进程当前已分配的资数量 int Ma_yy; /各进程对各类资的最大需求

4、数 int Needyy; /尚需多少资 int Request_; /申请多少资 int Work_; /工作向量,表示系统可提供应进程继续运行所需的各类资数量 int Finishy; /表示系统是否有足够的资分配给进程,1为是 int py; /存储平安序列 int i,j; /i表示进程,j表示资 int n,m; /n为进程i的数量,m为资j种类数 int l=0; /l用来记录有几个进程是Finishi=1的,当l=n是说明系统状态是平安的 int counter=0; /函数声明 void chushihua; /初始化函数 void safe; /平安性算法 void show

5、; /函数show,输出当前状态 void bank; /银行家算法 void jieshu; /完毕函数 void chushihua coutn; coutm; coutAvailablej; /输入数字的过程Workj=Availablej; /初始化Workj,它的初始值就是当前可用的资数 coutAllocationij; coutMa_ij; if(Ma_ij=Allocationij) /假设最大需求大于已分配,那么计算需求量 Needij = Ma_ij-Allocationij; else Needij=0;/Ma_小于已分配的时候,此类资已足够不需再申请 cout=Need

6、ij) counter=counter+1;/可用大于需求,记数 if(counter=m) /i进程的每类资都符合Workj=Needij 条件二 pl=i; /存储平安序列 Finishi=1; /i进程标志为可分配 for (j=0; jk; coutn-1) /输入错误处理 coutk; coutRequestj; coutNeedkj) /申请大于需求量时出错,提示重新输入贷款数目不允许超过需求数目coutAvailablej) /申请大于可利用量, 应该阻塞等待? ? coutNeedkj); /RequestjAvailablej| /改变Avilable、Allocation、

7、Need的值 for (j=0; j“b; cout“进程“(“pi“)“; for (i=0; in; i+) Finishi=0; /所有进程置为未分配状态 coutendl; bank; /调用银行家算法函数 cout“tt 演示计算完毕“endl; return 0; 运行结果:1.初始化结果 2.检测系统资分配是否平安结果:六、课程设计的总结 操作系统的根本特征是并发与共享。系统允许多个进程并发执行,并且共享系统的软、硬件资。为了最大限度的利用计算机系统的资,操作系统应采用动态分配的策略,但是这样就容易因资缺乏,分配不当而引起“死锁”。而我本次课程设计就是得用银行家算法来防止“死锁”

8、。银行家算法就是一个分配资的过程,使分配的序列不会产生死锁。此算法的中心思想是:按该法分配资时,每次分配后总存在着一个进程,假如让它单独运行下去,必然可以获得它所需要的全部资,也就是说,它能完毕,而它完毕后可以归还这类资以满足其他申请者的需要。本次程序就是按照上面的思路展开的。但是因为时间上的仓促,本课程设计的存在着以下缺乏:一、不能实现并发操作,即当总资同时满足几个进程所需要的资数时,这些进程不能同时进展,只能一一按进程顺序执行。二、扫描进程顺序单一,只能按进程到来的顺序即编号来扫描,从而产生的平安顺序只能是在这个顺序的根底上产生的,而其实平安顺序是有多个的。三、对进程数和资数进展的数量进展了限制,都只能最多有十个。四、运行程序后,界面较差,进程数,所需要资数,已分配资数,能用资数,不能一目了然。这次课程设计时间上虽说仓促点,但是我仍然学到了很多的实用性知识。除了更深的理解这个算法,而且对C语言进展了复习,而且其过程中有很多的知识点都不记得了,所以在此感谢在此过程中帮助过我的老师和同学。最后的感悟就是:只要你亲自动手,你就能学到知识。再次感谢帮助过我的老师和同学! 【参考文献】:p 】: :1 汤小丹,梁红兵,哲凤屏,汤子瀛.计算机操作系统第三版.西安电子科技大学出版社.2022.2 百度百科 第 4 页 共 4 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁