版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统大作业-银行家算法编程验证银行家算法1、 实验目的银行家算法是避免死锁的一种重要方法,本设计要求编程实现银行家算法程序。了解银行家算法运行的规律币,加深对银行家算法的了解。2、 实验原理银行家算法的思路: 1)、进程一开始向系统提出最大需求量. 2)、进程每次提出新的需求(分期贷款)都统计是否超出它事先提出的最大需求量. 3)、若正常,则判断该进程所需剩余剩余量(包括本次申请)是否超出系统所掌握的剩余资源量,若不超出,则分配,否则等待.银行家算法的数据结构. 1)、系统剩余资源量An,其中An表示第
2、I类资源剩余量. 2)、各进程最大需求量,Bmn,其中Bji表示进程j对i类资源最大需求. 3)、已分配资源量Cmn,其中Cji表示系统j程已得到的第i资源的数量. 4)、剩余需求量.Dmn,其中Dji对第i资源尚需的数目.银行家算法流程:当某时刻,某进程时,提出新的资源申请,系统作以下操作: 1)、判定En是否大于Djn,若大于,表示出错. 2)、判定En是否大于系统剩余量An,若大于,则该进程等待. 3)、若以上两步没有问题,尝试分配,即各变量作调整.
3、0; 4)、按照安全性推测算法,判断,分配过后,系统是否安全,若安全,则实际分配,否则,撤消分配,让进程等待."安全性检测"算法 1)、先定义两个变量,用来表示推算过程的数据. Fn=An,表示推算过程中,系统中剩余资源量的变化. Jn=False表示推算过程中各进程是否假设"已完成" 2)、流程:
4、60;在"剩余"的进程中(在推算)过程中,一些进程假设已完成,查找Djn<=Fn的进程,找到后令Jj=True(假设该进程完成),Fn+Djn(该进程所占资源释放),如此循环执行.若最后,所有的Fn=True(在推算过程中,所有进程均可以完成),则表示(分配过后)系统是安全的,否则系统是不安全的.3、 实验内容在codeblock编译器下编写代码首先现编写一个库文件,定义一个结构体:typedef struct int A; int B; int C;RESOURCE;结构体里面的三个域分别表示三种资源的数量。按书中的数据初速化三个矩阵RESOURCE MaxPROC
5、ESSES_NUMBER = 7,5,3,3,2,2,9,0,2,2,2,2,4,3,3; += res->A;Allocationprocess.B += res->B;Allocationprocess.C += res->C;Needprocess.A -= res->A;Needprocess.B -= res->B;Needprocess.C -= res->C; -= res->A;Allocationprocess.B -= res->B;Allocationprocess.C -= res->C;Needprocess.A
6、+= res->A;Needprocess.B += res->B;Needprocess.C += res->C; <= && Needi.B <= && Needi.C <= ; += Allocationi.B; += Allocationi.C;Finishi = true;safej+ = i;i = -1; && res->B <= Needprocess.B && res->C <= Needprocess.C),Max0.B,Max0.C,Allocati
7、on0.A,Allocation0.B,Allocation0.C,Need0.A,Need0.B,Need0.C,;printf(" P1 %d %d %d %d %d %d %d %d %dn",Max1.A,Max1.B,Max1.C,Allocation1.A,Allocation1.B,Allocation1.C,Need1.A,Need1.B,Need1.C);printf(" P2 %d %d %d %d %d %d %d %d %dn",Max2.A,Max2.B,Max2.C,Allocation2.A,Allocation2.B,Al
8、location2.C,Need2.A,Need2.B,Need2.C);printf(" P3 %d %d %d %d %d %d %d %d %dn",Max3.A,Max3.B,Max3.C,Allocation3.A,Allocation3.B,Allocation3.C,Need3.A,Need3.B,Need3.C);printf(" P4 %d %d %d %d %d %d %d %d %dn",Max4.A,Max4.B,Max4.C,Allocation4.A,Allocation4.B,Allocation4.C,Need4.A,Ne
9、ed4.B,Need4.C);printf("n");int main()intch;printf("检查初始状态:");if (SafeCheck()printf("系统处于安全状态。n");printf("T0时刻的存在安全序列是P%d,P%d,P%d,P%d,P%d。n",safe0,safe1,safe2,safe3,safe4);elseprintf("系统处于不安全状态。程序退出n");goto over;dointprocess;RESOURCEres;Print();printf("请输入数据(如输入0 1 2 3则为P0 1 2 3):");scanf("%d%d%d%d",&process,&,&,&if (request(process,&res)printf("分配成功。n");printf("安全序列是P%d,P%d,P%d,P%d,P%d。n",safe0,safe1,safe2,safe3,safe4);elseprintf("分配失败。n&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外贸单证操作 课件 项目五:缮制原产地证-外贸单证操作
- 农村承包土地调查技术规范 按照位置准确、面积精确
- 苏教版一年级下册数学全册试题一课一练
- 旅游景区游客满意度调查研究综述
- 汽车发动机构造与维修 教案 10.2认识润滑油的润滑路径
- 《汽车发动机构造与维修》 课件 项目二 曲柄连杆机构的构造与维护
- 记账实操-起重机租赁公司的账务处理分录
- 2025高考物理步步高同步练习模块综合试卷含答案
- 《白鹅》高傲姿态教案
- 专升本(英语)模拟试卷46(共963题)
- 培养健康心灵成就美好人生
- 《树立正确的政绩观》课件
- 运维质量管理体系及保障措施方案
- 《兵家管理思想》课件
- 生物医药产业园项目可行性研究报告
- 关于《小英雄雨来》读书心得
- 消费券调查研究报告
- 人教版(2019)新教材高一数学校本教材
- 保险理赔人员集中管理制度
- 手术后伤口愈合不良查房
- 期末(试题)外研版(三起)英语四年级下册
评论
0/150
提交评论