银行家算法设计实验报告材料

银行家算法设计实验报告材料

ID:35940985

大小:282.17 KB

页数:10页

时间:2019-04-26

银行家算法设计实验报告材料_第1页
银行家算法设计实验报告材料_第2页
银行家算法设计实验报告材料_第3页
银行家算法设计实验报告材料_第4页
银行家算法设计实验报告材料_第5页
资源描述:

《银行家算法设计实验报告材料》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实用文案银行家算法设计实验报告一.题目分析1.银行家算法:我们可以把操作系统看做是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求资源相当于客户向银行家贷款。操作系统按银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程尚需求的资源量,若是系统现存的资源可以满足它尚需求的资源量,则按当前的申请量来分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程申请的资源量是否超过了它尚需的资源量。若超过则拒绝分配,若没有超过则再测试系统尚存的资源是否满足该进程尚需的资源量,若满足即可按当前的申请量来分配,若不满足亦推迟分配。2

2、.基本要求:(1)可以输入某系统的资源以及T0时刻进程对资源的占用及需求情况的表项,以及T0时刻系统的可利用资源数。(2)对T0时刻的进行安全性检测,即检测在T0时刻该状态是否安全。(3)进程申请资源,用银行家算法对其进行检测,分为以下三种情况:A.所申请的资源大于其所需资源,提示分配不合理不予分配并返回B.所申请的资源未大于其所需资源,但大于系统此时的可利用资源,提示分配不合理不予分配并返回。C.所申请的资源未大于其所需资源,亦未大于系统此时的可利用资源,预分配并进行安全性检查:a.预分配后系统是安全的,将该进程所申请的资源予以实际分配并打印后返回。b.与分配后

3、系统进入不安全状态,提示系统不安全并返回。(4)对输入进行检查,即若输入不符合条件,应当报错并返回重新输入。3.目的:根据设计题目的要求,充分地分析和理解题目,叙述系统的要求,明确程序要求实现的功能以及限制条件。明白自己需要用代码实现的功能,清楚编写每部分代码的目的,做到有的放矢,有条理不遗漏的用代码实现银行家算法。二.概要设计1.算法思路:先对用户提出的请求进行合法性检查,即检查请求是否大于需要的,是否大于可利用的。若请求合法,则进行预分配,对分配后的状态调用安全性算法进行检查。若安全,则分配;若不安全,则拒绝申请,恢复到原来的状态,拒绝申请。2.安全性算法步骤

4、(1)设置两个变量①剩余资源变量盘p[]。它表示系统可提供进程继续运行所需要的各类资源数目,执行安全算法开始时,p[N]=S[N]标准文档实用文案②标记数组C[]。它表示系统是否有足够的资源分配给进程,使之运行完成,开始时先做C[i]=’F’,当有足够资源分配给进程时,令C[i]=’T’。(2)从进程集合中找到一个能满足下述条件的进程:①C[i]=’F’②Q[][]<=p[]如找到,执行步骤(3);否则,执行步骤(4)。(3)当进程T获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:p[]=p[]+R[][];C[i]=’T’;转向步骤(2)。(

5、4)如果所有进程的C[i]=’T’,则表示系统处于安全状态;否则,系统处于不安全状态。3.进程请求算法步骤(1)如果Request[][]<=Q[],则转向步骤(2);否则,认为出错,因为它所需要的资源数已超过它所宣布的最大值。(2)如果Request[][]<=p[][],则转向步骤(3);否则,表示系统中尚无足够的资源,进程必须等待。(3)系统试探把要求的资源分配给进程Tt(t从1开始),并修改下面数据结构中的数值:    p[j]=p[j]-Request[t-1][j];    R[t-1][j]=R[t-1][j]+Request[t-1][j];   

6、 Q[t-1][j]=Q[t-1][j]-Request[t-1][j];(4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。4.主要用到的数据结构:(1)最大需求矩阵Max[N][N](2)已分配矩阵R[N][N](3)仍需求矩阵Q[N][N]=Max[N][N]-R[N][N](4)可利用资源向量p[N](5)申请各类资源向量Request[N](6)工作向量work[],C[N](7)各类资源总数S[N];5.程序模块:voidmain()系统的主函数,用来显示资源的分配情况和提示信息,同时用Main函数来调用其它子程序。intcheck()

7、;安全性检查函数,用来检查是否有安全序列,如果存在则返回一个‘1’给主函数,否则返回‘0’。intjudge();进程请求函数,用来进行资源请求,分为手动的和随机申请。同时对申请的资源进行判断,检查申请是否有效,如果有效则返回一个‘1’给主函数,否则返回‘0’。三.流程图标准文档实用文案1.银行家算法Main()函数流程图标准文档实用文案2.安全性检查算法check()函数流程图调用check()函数p[]=S[]C[]=’F’Q[i][j]<=p[j]C[i]=’F’?p[j]=p[j]+R[i][j]C[i]=’T’YN所有进程的C[i]==’T’?l=m?Y

8、N输出安全

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

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

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