欢迎来到天天文库
浏览记录
ID:15532677
大小:529.00 KB
页数:30页
时间:2018-08-03
《银行家算法(用c语言实现)课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、成绩课程设计报告题目银行家算法程序设计课程名称操作系统课程设计院部名称信息技术学院专业计算机科学与技术班级学生姓名**学号**********课程设计地点课程设计学时20指导教师*********教务处制29操作系统课程设计报告摘要Dijkstra提出的银行家算法,是最具代表性的避免死锁的算法。本文对如何用银行家算法来处理操作系统给进程分配资源做了详细的说明,包括需求分析、概要设计、详细设计、测试与分析、总结、源程序清单。 首先做了需求分析,解释了什么是银行家算法,并指出它在资源分配中的重要作用。然后给出了银行家算法的概要设计,包括算法思路、步骤,以及要用到的主要数据结构、函数模块及
2、其之间的调用关系等。在概要设计的基础上,又给出了详细的算法设计,实现概要设计中定义的所有函数,对每个函数写出核心算法,并画出了流程图。接着对编码进行了测试与分析(并在最后附上Java编写的程序代码)。最后对整个设计过程进行了总结。关键词:安全状态;安全序列;银行家算法;安全性算法;安全序列;流程图。29目录摘要…………………………………………………………………………………1目录…………………………………………………………………………………21.绪论…………………………………………………………………………………31.1前言……………………………………………………………………………31.
3、2研究意义………………………………………………………………………41.3结构安排………………………………………………………………………42.需求分析……………………………………………………………………………52.1题目描述………………………………………………………………………52.2银行家算法……………………………………………………………………52.3基本要求………………………………………………………………………52.4目的……………………………………………………………………………63.概要设计……………………………………………………………………………73.1设备环境……………………
4、…………………………………………………73.2算法思路………………………………………………………………………73.3银行家算法步骤………………………………………………………………73.4安全性算法步骤………………………………………………………………83.5数据结构………………………………………………………………………93.6系统结构图……………………………………………………………………124.详细设计 ………………………………………………………………………134.1主要函数的核心代码………………………………………………………134.2程序流程图……………………………………………………
5、……………135.测试………………………………………………………………………………165.1测试用例……………………………………………………………………165.2测试结果截图………………………………………………………………176.总结………………………………………………………………………………22参考文献……………………………………………………………………………24致谢…………………………………………………………………………………25附录…………………………………………………………………………………26291绪论1.1前言:Dijkstra(1965)提出了一种能够避免死锁的调度算法
6、,称为银行家算法。它的模型基于一个小城镇的银行家,他向一群客户分别承诺了一定的贷款额度,每个客户都有一个贷款额度,银行家知道不可能所有客户同时都需要最大贷款额,所以他只保留一定单位的资金来为客户服务,而不是满足所有客户贷款需求的最大单位。这里将客户比作进程,贷款比作设备,银行家比作系统。客户们各自做自己的生意,在某些时刻需要贷款。在某一时刻,客户已获得的贷款和可用的最大数额贷款称为与资源分配相关的系统状态。一个状态被称为是安全的,其条件是存在一个状态序列能够使所有的客户均得到其所需的贷款。如果忽然所有的客户都申请,希望得到最大贷款额,而银行家无法满足其中任何一个的要求,则发生死锁。不
7、安全状态并不一定导致死锁,因为客户未必需要其最大贷款额度,但银行家不敢抱这种侥幸心理。银行家算法就是对每一个请求进行检查,检查如果满足它是否会导致不安全状态。若是,则不满足该请求;否则便满足。检查状态是否安全的方法是看他是否有足够的资源满足一个距最大需求最近的客户。如果可以,则这笔投资认为是能够收回的,然后接着检查下一个距最大需求最近的客户,如此反复下去。如果所有投资最终都被收回,则该状态是安全的,最初的请求可以批准。291.2研究意义:在多道程序系统中,
此文档下载收益归作者所有