您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 编程序模拟银行家算法
武汉理工大学华夏学院课程设计报告书课程名称:操作系统原理题目:编程序模拟银行家算法系名:信息工程系专业班级:软件1121姓名:钟伟学号:10212812120指导教师:苏永红2014年6月13日武汉理工大学华夏学院信息工程系课程设计任务书课程名称:操作系统原理课程设计指导教师:苏永红班级名称:软件1121开课系、教研室:软件与信息安全一、课程设计目的与任务操作系统课程设计是《操作系统原理》课程的后续实践课程,旨在通过一周的实践训练,加深学生对理论课程中操作系统概念,原理和方法的理解,加强学生综合运用操作系统原理、Linux系统、C语言程序设计技术进行实际问题处理的能力,进一步提高学生进行分析问题和解决问题的能力,包含系统分析、系统设计、系统实现和系统测试的能力。学生将在指导老师的指导下,完成从需求分析,系统设计,编码到测试的全过程。二、课程设计的内容与基本要求1、课程设计题目编程序模拟银行家算法2、课程设计内容本课程设计要求在Linux操作系统,GCC编译环境下开发。银行家算法是避免死锁的一种重要方法,本实验要求用用c/c++语言在Linux操作系统环境下编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。思想:将一定数量的资金供多个用户周转使用,当用户对资金的最大申请量不超过现存资金时可接纳一个新客户,客户可以分期借款,但借款总数不能超过最大的申请量。银行家对客户的借款可以推迟支付,但是能够使客户在有限的时间内得到借款,客户得到所有的借款后能在有限的时间内归还。用银行家算法分配资源时,测试进程对资源的最大需求量,若现存资源能满足最大需求就满足当前进程的申请,否则推迟分配,这样能够保证至少有一个进程可以得到所需的全部资源而执行到结束,然后归还资源,若OS能保证所有进程在有限的时间内得到所需资源则称系统处于安全状态。3、设计报告撰写格式要求:1设计题目与要求2设计思想3系统结构4数据结构的说明和模块的算法流程图5使用说明书(即用户手册):内容包含如何登录、退出、读、写等操作说明6运行结果和结果分析(其中包括实验的检查结果、程序的运行情况)7自我评价与总结8附录:程序清单,注意加注释(包括关键字、方法、变量等),在每个模块前加注释;三、课程设计步骤及时间进度和场地安排本课程设计将安排在第17周,教育技术中心。具体安排如下:第一天,下发任务书,学生查阅资料第二天,系统设计和原型开发第三,四天系统功能实现第五天,系统调试测试打包和验收周次星期一星期二星期三星期四星期五第17周第1-8节第1-8节第1-8节第1-8节第1-8节地点现教241现教241现教241现教241现教241四、课程设计考核及评分标准课程设计考核将综合考虑学生考勤和参与度,系统设计方案正确性,系统设计和开发效果以及课程设计报告书的质量。具体评分标准如下:设置六个评分点(1)设计方案正确,具有可行性、创新性;25分(2)系统开发效果较好;25分(3)态度认真、刻苦钻研、遵守纪律;10分(4)设计报告规范、课程设计报告质量高、参考文献充分20分(5)课程设计答辩概念清晰,内容正确10分(6)课程设计期间的课堂考勤、答疑与统筹考虑。10分按上述六项分别记分后求和,总分按五级记分法记载最后成绩。优秀(100~90分),良好(80~89分),中等(70~79分),及格(60~69分),不及格(0~59分)目录1设计题目与要求....................................................................................................................51.1设计题目.....................................................................................................................51.2实验要求.....................................................................................................................52设计思想...............................................................................................................................54数据结构的说明和模块的算法流程图................................................................................64.1死锁避免:....................................................................................................................64.1.1破坏“不可剥夺”条件..........................................................................................64.1.2破坏“请求和保持”条件......................................................................................64.1.3破坏“循环等待”条件..........................................................................................64.2安全状态与不安全状态.............................................................................................64.3数据结构:.................................................................................................................64.4安全性检查算法.........................................................................................................74.5程序流程图.................................................................................................................85使用说明书...................................................................................................................96运行结果和结果分析....................................................................................................96.1输入.............................................................................................................................96.2输出...........................................................................................................................106.3结果分析...................................................................................................................117自我评价与总结..................................................................................................................118附录:..................................................................................................................................12源程序清单.............................................................................................................................121设计题目与要求1.1设计题目编程序模拟银行家算法1.2实验要求本实验要求用用c/c++语言在Linux操作系统环境下编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。2设计思想将一定数量的资金供多个用户周转使用,当用户对资金的最大申请量不现存资金时可接纳一个新客户,客户可以分期借款,但借款总数不能超过最大的申请量。银行家对客户的借款可以推迟支付,但是能够使客户在有限的时间内得到借款,客户得到所有的借款后能在有限的时间内归还。用银行家算法分配资源时,测试进程对资源的最大需求量,若现存资源能满足最大需求就满足当前进程的申请,否则推迟分配,这样能够保证至少有一个进程可以得到所需的全部资源而执行到结束,然后归还资源,若OS能保证所有进程在有限的时间内得到所需资源则称系统处于安全状态。3.实验环境系统平台:LINUX开发语言:C开发工具:PC机一台4数据结构的说明和模块的算法流程图4.1死锁避免:定义::系统设计时确定资源分配算法,保证不发生死锁。具体的做法是破坏产生死锁的四个必要条件之一4.1.1破坏“不可剥夺”条件在允许进程动态申请资源前提下规定,一个进程在申请新的资源不能立即得到满足而变为等待状态之前,必须释放已占有的全部资源,若需要再重新申请4.1.2破坏“请求和保持”条件要求每个进程在运行前必须一次性申请它所要求的所有资源,且仅当该进程所要资源均可满足时才给予一次性分配4.1.3破坏“循环等待”条件采用资源有序分配法:把系统中所有资源编号,进程在申请资源时必须严格按资源编号的递增次、序进行,否则操作系统不予分配。4.2安全状态与不安全状态安全状态:如果存在一个由系统中所有进程构成的安全序列P1,…Pn,则系统处于安全状态。一个进程序列{P1,…,Pn}是安全的,如果对于每一个进程Pi(1≤i≤n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj(ji)当前占有资源量之和,系统处于安全状态(安全状态一定是没有死锁发生的)不安全状态:不存在一个安全序列,不安全状态一定导致死锁。4.3数据结构:(1)可利用资源向量Available是个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目。如果Available[j]=K,则表示系统中现有Rj类资源K个。(2)最大需求矩阵Max这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果M
本文标题:编程序模拟银行家算法
链接地址:https://www.777doc.com/doc-2068774 .html