您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 银行家算法课程设计实验报告
1滁州学院课程设计报告课程名称:操作系统设计题目:银行家算法的设计与实现系别:计算机与信息工程学院专业:计算机科学与技术组别:第二组起止日期:2012年5月14日~2012年6月19日指导教师:马丽生2课程设计题目银行家算法的设计和实现组长张震学号2010211148班级10计科2班系别计算机专业计算机科学与技术组员李梦2010211102马岩2010211109蒋路路2010211095严路路2010211132指导教师马丽生课程设计目的熟练掌握银行家算法课程设计所需环境Vc++,windowsxp课程设计任务要求编写带有界面的银行家算法程序课程设计工作进度计划序号起止日期工作内容分工情况12012/5/14~2012/5/21查询相关资料,了解银行家算法的主要目的及编写方式张震负责对银行家算法的整体思想过程以及了解函数总体编写李梦、严路路负责查找银行家算法的输出算法的实现编写过程马岩、蒋路路负责对安全性检测的方式的实现查找22011/5/22~2011/6/5进行代码设计各个组员对各自部分的代码编写32011/6/6~2011/6/13调试程序共同解决程序中的相应错误42011/6/13~2011/6/19文档编写及最终修订编写word文档,仔细检查发现各类问题指导教师签字:年月日教研室审核意见:教研室主任签字:年月日3目录1.引言..............................................................................................................................................................42.设计要求...................................................................................................................................................42.1.问题描述..............................................................................................................................................42.2.基本要求..............................................................................................................................................43.设计分析......................................................................................................................................................53.1.安全性算法的算法思想......................................................................................................................53.1.1.设置向量..................................................................................................................53.1.2.安全性检测流程图..................................................................................................63.2.银行家算法的算法思想......................................................................................................................73.2.1.银行家算法的思路..................................................................................................73.2.2.银行家算法............................................................................................................73.2.3.银行家算法流程图................................................................................................84.详细设计....................................................................................................................................................104.1.银行家算法中用到的主要数据结构设计.......................................................................................104.2.算法整体设计与调用........................................................................................................................104.3.模块设计............................................................................................................................................114.3.1.安全性算法............................................................................................................114.3.2.输出算法................................................................................................................134.3.3.整体函数设计........................................................................................................145.调试与操作说明........................................................................................................................................195.1运行程序.............................................................................................................................................196.课程设计的总结与体会............................................................................................................................216.1.总结.....................................................................................................................................................216.2.体会.....................................................................................................................................................2141.引言银行家算法是一个用来预防系统进入死锁状态的算法,用它可以判断系统的安全性,如果系统当前处于安全状态,则可以为申请资源的进程分配资源,如果不是安全状态,则不能为申请资源的进程分配资源。银行家算法执行过程中,首先判断申请资源的进程所申请的资源数目是否合法,若是合法的,则可以为其进行试分配,再利用安全性算法求出安全序列,如果存在安全序列,则说明可以给申请资源的进程分配资源,分配成功,继续为其它进程服务。如果找不到安全序列,则说明为该进程分配资源后系统会进入不安全状态,所以不能为该进程分配资源,使该进程进入阻塞状态。若申请资源的进程申请的资源数目不合法,则不需要进行试分配,直接使其进入阻塞状态,处理其他申请资源的进程。设计首先对算法的设计从总体上进行了分析,然后分析各个细节,再对算法分模块设计,并对各个模块的算法思想通过流程图表示,分块编写代码,并进行调试和测试,最后进行组装测试及系统测试,使其成为一个可以用来判断系统安全状态的程序。2.设计要求2.1.问题描述当系统在进行资源管理时,如果对进程申请的资源分配不当,可能会使系统进入死锁状态,因而后面到来的进程也无法顺利执行。银行家算法中,要对当前申请资源的进程申请资源的数目进行判断,如果可以试分配,则试求出一个安全序列,如果可以求出,则说明给这个进程分配资源后系统不会进入不安全状态,将该进程申请的资源分配给他,若求不出安全序列,则说明将资源分配给该进程后系统会进入不安全状态,所以就使该进程进入阻塞状态,等待以后可以分配资源时再执行该进程,然后系统继续服务其它进程。通过这样一个过程,可以有效避免系统进入死锁状态。2.2.基本要求1)创建用来保存资源和进程的数据结构,本实验用二维数组实现。所要保存的项目包括进程名称、数目、资源数目、最大需求数目、已分配数目、仍需数目及当前状态可利用数目。2)编写格式输出函数,本实验输入的数据以矩阵的方式输出。编写安全状态判断函数,5要求对输入的可用资源数目进行安全性判断,以及对进程提出的请求进行判断是否符合安全性原则。若存在,则输出一个安全序列。编写银行家算法函数,要求对资源申请后的系统状态进行对应的输出,包括正确的情况输出和错误情况输出。3)在用户输入所有初始化信息后,首先对信息以矩阵形式输出,再输入一组可用资源数目,此时系统判断是否存在安全序列,若有则输出一个安全路径;若无,则表示初始化不正确,请重新输入。在已经安全的前提下,某进程提出资源盛情,包括进程名称、盛情资源项目,在判断是否安全,进而给出资源分配以及安全路径,输出分配后系统状态。若不能,返回。3.设计分析3.1.安全性算法的算法思想思想:系统在进行资源分配之前,应先计算此次资源分配后状态的安全性。
本文标题:银行家算法课程设计实验报告
链接地址:https://www.777doc.com/doc-3779774 .html