欢迎来到天天文库
浏览记录
ID:14257148
大小:420.50 KB
页数:28页
时间:2018-07-27
《银行家算法通用演示程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、青岛理工大学操作系统课程设计报告院(系):专业:学生姓名: 班级:___学号:题目:银行家算法通用演示程序__起迄日期: 设计地点:指导教师:2010—2011年度第2学期完成日期:2011年7月2日27目录一、课程设计目的2二、课程设计内容2三、系统分析与设计31、系统分析32、系统设计:42.1、模块设计:42.2、数据结构说明:62.3、算法流程图:7四、模块调试与系统测试121、模块调试122、系统测试123、调试分析:14五、用户手册15六、程序清单17七、体会与自我评价26八、参考文献27九、课程设计评
2、价2727一、课程设计目的《操作系统》是一门重要的专业基础课,是涉及较多硬件知识的计算机系统软件课程。操作系统是计算机系统的核心软件,它负责控制和管理整个系统的资源,并组织用户协调使用这些资源,提高计算机的工作效率。在计算机软硬件课程的设置上,它起着承上启下的作用。进行操作系统课程设计主要是在学习操作系统课程的基础上,在完成操作系统各部分实验的基础上,对操作系统的整体进行一个模拟,通过实践加深对各个部分的管理功能的认识,还能进一步分析各个部分之间的联系,最后达到对完整系统的理解。同时,可以提高运用操作系统知识解决实际
3、问题的能力;锻炼实际的编程能力、创新能力及团队组织、协作开发软件的能力;还能提高调查研究、查阅技术文献、资料以及编写软件设计文档的能力。银行家算法主要用于解决多种资源被多个独立执行的程序使用的安全算法。银行家算法采用矩阵存储资源的数据,通过对系统资源预分配后检查系统状态,以避免死锁的产生。Dijkstra(1965)提出了一种能够避免死锁的调度算法,称为银行家算法。它的模型基于一个小城镇的银行家,他向一群客户分别承诺了一定的贷款额度,每个客户都有一个贷款额度,银行家知道不可能所有客户同时都需要最大贷款额,所以他只保留
4、一定单位的资金来为客户服务,而不是满足所有客户贷款需求的最大单位。这里将客户比作进程,贷款比作设备,银行家比作系统。客户们各自做自己的生意,在某些时刻需要贷款。在某一时刻,客户已获得的贷款和可用的最大数额贷款称为与资源分配相关的系统状态。一个状态被称为是安全的,其条件是存在一个状态序列能够使所有的客户均得到其所需的贷款。如果忽然所有的客户都申请,希望得到最大贷款额,而银行家无法满足其中任何一个的要求,则发生死锁。不安全状态并不一定导致死锁,因为客户未必需要其最大贷款额度,但银行家不敢抱这种侥幸心理。银行家算法就是对每
5、一个请求进行检查,检查如果满足它是否会导致不安全状态。若是,则不满足该请求;否则便满足。检查状态是否安全的方法是看他是否有足够的资源满足一个客户。如果可以,则这笔投资认为是能够收回的,然后接着检查下一个客户,如此反复下去。如果所有投资最终都被收回,则该状态是安全的,最初的请求可以批准。二、课程设计内容本次课程设计是编写一个银行家算法通用演示程序。银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,
6、则分配,否则等待。为实现银行家算法,系统必须设置若干数据结构。要解释银行家算法,必须先解释操作系统安全状态和不安全状态。安全序列是指一个进程序列{P1,…,Pn}是安全的,如果对于每一个进程Pi(1≤i≤n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj(j
7、操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配
8、。银行家算法通用演示程序要求:1)资源种类与数目可在界面进行设置,在资源分配过程中可以随时增加进程及其对资源的需求2)可读取样例数据(要求存放在外部文件中)进行资源种类、数目与进程数的初始化3)在资源分配过程中可以随时进行系统安全状态检测4)如果能够通过系统安全状态检测,则系统对该进程进行资源分配;当进程满足所有资源分配后能够自行释放所有资源,
此文档下载收益归作者所有