操作系统课程设计报告-银行家算法的模拟实现

操作系统课程设计报告-银行家算法的模拟实现

ID:6789018

大小:222.50 KB

页数:17页

时间:2018-01-25

操作系统课程设计报告-银行家算法的模拟实现_第1页
操作系统课程设计报告-银行家算法的模拟实现_第2页
操作系统课程设计报告-银行家算法的模拟实现_第3页
操作系统课程设计报告-银行家算法的模拟实现_第4页
操作系统课程设计报告-银行家算法的模拟实现_第5页
资源描述:

《操作系统课程设计报告-银行家算法的模拟实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、操作系统课程设计报告题目:银行家算法的模拟实现专业计算机科学与技术学生姓名班级计算机131学号指导教师完成日期2015.7.10信息工程学院15操作系统课程设计(2015)目录1概述21.1设计目的21.2设计要求22设计原理22.1银行家算法22.2安全性算法33概要设计33.1功能结构33.2模块划分34详细设计44.1初始化模块设计44.2银行家算法模块设计44.3安全性检查模块设计55测试与分析65.1测试方案65.2测试结果65.3结果分析76设计小结77参考文献8附录源程序代码915操作系统课程设计(2015)题目

2、:银行家算法的模拟实现1概述1.1设计目的a).进一步了解进程的并发执行。b).加强对进程死锁的理解。c).是用银行家算法完成死锁检测。1.2设计要求a).初始状态没有进程启动;b).计算每次进程申请是否分配,如:计算出预分配后的状态情况(安全状态、不安全状态),如果是安全状态,输出安全序列;c).每次进程申请被允许后,输出资源分配矩阵A和可用资源向量V;d).每次申请情况应可单步查看,如:输入一个空格,继续下个申请。2设计原理2.1银行家算法设Requesti是进程Pi的请求向量,如果Requesti[j]=K,表示进程Pi

3、需要K个Ri类型的资源。当Pi发出资源请求后,系统按下述步骤进行检查:a)如果Requesti[j]<=Need[i,j],便转向步骤b);否则认为出错,因为它所需的资源数已经超过了它所宣布的最大值。b)如果Requesti[j]<=Available[j],便转向步骤c);否则表示尚无足够资源,Pi需等待。c)系统试探着把资源分配给进程Pi,并修改下面数据结构中的数值。Available[j]=Available-Requesti[j];Allocation[i,j]=Allocation[i,j]+Requesti[j];

4、Need[i,j]=Need[i,j]-Request[j];d)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程Pi,以完成本次分配;否则,将本次的试探分配作废,恢复原来资源的分配状态,让进程Pi等待。2.2安全性算法系统所执行的安全性算法可描述如下:a)设置两个向量:一个是15操作系统课程设计(2015)工作向量Work;它表示系统可提供给进程继续运行所需要的各类资源的数目,它含有m个元素,在执行安全性算法开始时,work=Availalbe;另一个是Finish:它表示系统是否

5、有足够的资源分配给进程,使之运行完成。开始时先做Finish[i]=false;当有足够资源分配给进程时,再令Finish[i]=rue;b)从进程集合中找到一个能满足下述条件的进程:一是Finish[i]==false;二是Need[i,j]<=Work[j];若找到,执行步骤c),否则,执行步骤d);c)当进程Pi获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:Work[j]=Work[j]+Allocation[i,j];Finish[i]=true;gotostepb);d)如果所有进程的Finis

6、h[i]==true都满足,则表示系统处于安全状态,否则系统处于不安全状态。3概要设计3.1功能结构银行家算法功能结构图如图3-1所示:图3-115操作系统课程设计(2015)3.2模块划分a)初始化b)银行家算法c)安全性检查4详细设计4.1初始化模块设计由用户输入数据,分别对运行的进程数、总的资源种类数、总资源数、各进程所需要的最大资源数量(Max),已分配的资源数量(Allowcation),可利用的资源数量(Available)赋值。如图5-1所示,代码如下。inti,j,p=0,q=0;charc;intreques

7、t[m],allocation1[m][m],need1[m][m],available1[m];printf("**********************************************");printf("*银行家算法的设计与实现*");printf("**********************************************");printf("请输入进程总数:");scanf("%d",&no1);printf("请输入资源种类数:");scanf("%d",&n

8、o2);printf("请输入Max矩阵:");for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。