




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上 XXXX大学实 验 报 告|实验名称 实验三 银行家算法课程名称 操作系统 | 专业班级: 学生姓名: 学 号: 成 绩:指导教师: 实验日期: 专心-专注-专业一、实验目的及要求1、实验目的 熟悉银行家算法,理解系统产生死锁的原因及避免死锁的方法,加深记意。2、实验要求 用高级语言编写和调试一个描述银行家算法的程序。设计五个进程P0,P1,P2,P3,P4共享三类资源A,B,C的系统,A,B,C的资源数量分别为10,5,7。进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。要求程序具有显示和打印各进程的某一时刻的资源分配表和安全序列;显示和打印各进
2、程依次要求申请的资源号以及为某进程分配资源后的有关资源数据。二、所用仪器、设备PC机三、实验原理利用银行家算法避免死锁1、银行家算法中的数据结构(1)可利用资源向量Available(2)最大需求规阵Max(3)分配矩阵Allocation(4)需求矩阵Need2、银行家算法(1)如果Requesti或=Need,则转向步骤2;否则,认为出错,因为它所需要的资源数已超过它所宣布的最大值。(2)如果Request或=Available,则转向步骤(3);否则,表示系统中尚无足够的资源,P1必须等待。(3)系统试探把要求的资源分配给进程Pi,并修改下面数据结构中的数值:Available:=Ava
3、ilable-Requesti;Allocation:=Allocationi+Request;Needi:=Needi-request;(4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。3、安全性算法系统所执行的安全性算法可描述如下:(1)设置两个向量工作向量Work。它表示系统可提供进程继续运行所需要的各类资源数目,它含有m个元素,执行安全算法开始时,Work:=Allocation;Finish。它表示系统是否有足够的资源分配给进程,使之运行完成,开始时先做Finishi:=false;当有足够资源分配给进程时,令Finishi:=true。(2)从进程集合中找到一个能
4、满足下述条件的进程:Finishi:=falseNeed</=Work如找到,执行步骤(3);否则,执行步骤(4)。(3)当进程P获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:Work:=Work+Allocation;Finishi:=true;Go to step 2;(4)如果所有进程的Finishi=true,则表示系统处于安全状态;否则,系统处于不安全状态。4、银行家算法之例假设有五个进程P0,P1,P2,P3,P4和三种类型的资源A,B,C,每一种资源的数量分别为10、5、7,在T0时刻的资源分配情况如图1所示。图1(1)T0时刻的安全性利用安全性算法对
5、T0时刻的资源分配情况进行分析,可得下表所示的T0时刻的安全性分析,从中得知,T0时刻存在着一个安全序列P1,P3,P4,P2,P0,故系统是安全的,如图2所示。图2(2) P1请求资源P1发出请求向量Request(1,0,2),系统按银行家 算法进行检查:(1)Request1(1,0,2)Need(1,2,2)(2)Request1(1,0,2)Available(3,3,2)(3)系统先假定可为P1分配资源,并修改Aailable,Allocation1和Need1向量,由此形成的资源变化情况如图1中的圆括号所示。(4)我们再利用安全性检查此时系统是否安全。由所进行的安全性检查得知,可
6、以找到一个安全序列P1,P3,P4,P2,P0。因此,系统是安全的,可以立即将P1所申请的资源分配给它。(3)P4请求资源P4发出请求向量Request(3,3,0),系统按银行家算法进行检查:(1)Request4(3,3,0)Need4(4,3,1)。(2)Request4(3,3,0)>Available(2,3,0),让P4等待。(4) P0请求资源P0发出请求向量Request0(0,2,0),系统按银行家算法进行检查:(1)Request0(o,2,0)<或=Need0(7,4,3);(5)进行安全性检查可用资源Available2,1,0已不能满足任何进程的需要,故系
7、统进入不安全状态,此时系统不分配资源。如果在银行家算法中,把P0发出的请求向量改为Request(0,1,0),系统是否能将资源分配给它,请读者考虑四、实验方法与步骤先定义好每个进程的MAX,ALLOCTION,NEED,AVAILABLE等:int P_finish5=0,0,0,0,0; /已完成的进程序列 int P_work5; /进程工作序列 int P_max3=7,5,3,3,2,2,9,0,2,2,2,2,4,3,3; /进程最大需求 int P_Alloctioan3=0,1,0,2,0,0,3,0,2,2,1,1,0,0,2; /进程已得到的 int P_need3=7,4
8、,3,1,2,2,6,0,0,0,1,1,4,3,1; /进程还需分配的int Sys_resource3=3,3,2; 定义需要的向量:int test(int avaliablem,int neednm,int allocationnm,int finishn, int num,int requestm)判断安全性程序:for(i=0;i<5;i+) /(如果五个i都是一,则为安全的,否则不安全) bj=finishi+bj; if(bj=5) cout<<" 本次安全序列:" /(安全的话,就输出信息) for(i=0;i<5;i+) cout
9、<<"进程"<<tempi<<"->" return 1; else return 0; /(返回一个值,一次来作为分配资源时候系统是否安全)检查分配以后系统是否处于安全状态:for(j=0;j<3;j+) available1j=available1j-rq12; allocation1ij=allocation1ij+rqij; need1ij=need1ij-rqij; sf=safe(jcbh1,allocation1,need1,available1); 五、实验结果与数据处理此程序的1为P0,2 为P1,以此类推。先让P0申请资
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七夕节活动方案(合集18篇)
- 年产300万只汽车前大灯智项目实施方案
- 年产20万吨氟化系列产品生产项目建议书(仅供参考)
- 广告牌匾规范化整治规划设计方案(范文)
- 公共厕所改造工程规划设计方案(范文)
- 社会服务方案设计
- 伊春职业学院《申论》2023-2024学年第二学期期末试卷
- 毕节医学高等专科学校《视唱III》2023-2024学年第二学期期末试卷
- 厦门兴才职业技术学院《教师语言技能B1》2023-2024学年第二学期期末试卷
- 郴州思科职业学院《大数据运维实验》2023-2024学年第二学期期末试卷
- 英语16种时态及练习题附答案
- 《致大海》00省公开课金奖全国赛课一等奖微课获奖课件
- MOOC 音乐心理学-上海师范大学 中国大学慕课答案
- 数字贸易学 课件 第16章 智慧物流与海外仓
- 《游园不值》1省公开课一等奖全国示范课微课金奖课件
- 广东省广州市2022-2023学年八年级下学期语文期中试卷(含答案)
- 防藏药的护理措施
- 高中物理 选修一《机械振动》大单元教学设计
- PLC在建筑物自动化和智能化中的应用
- 第11课《及时治小伤》教学设计
- 数据分析与评价控制程序
评论
0/150
提交评论