淮海工学院计算机学院实验报告书课程名:《操作系统原理A》题目:银行家算法班级:Z计121学号:2014140093姓名:薛慧君评语:成绩:指导教师:批阅时间:年月日《操作系统原理A》实验报告-1-操作系统原理实验——银行家算法实验报告1目的与要求:1)本实验目的是通过使用银行家算法实现系统资源的分配和安全性检查模拟,提高学生对操作系统资源分配功能的深刻理解,并培养学生对操作系统开发的兴趣与应用能力;2)实验前必须认真阅读和理解银行家算法的基本原理和实现方法;3)独立使用C或VC++编程语言编写银行家算法模拟程序;4)按照实验题目要求独立正确地完成实验内容(编写、调试算法程序,提交程序清单及及相关实验数据与运行结果)5)于2015年5月10日以前提交本次实验报告(含电子和纸质报告,由学习委员以班为单位统一打包提交)。2实验内容或题目1)设计五个进程{P0,P1,P2,P3,P4}共享三类资源{A,B,C}的系统,{A,B,C}的资源总数量分别为10,5,7。(参考书上用例)2)并行进程可动态地申请资源和释放资源(程序交互输入申请或释放资源数量),系统按各进程的申请动态地分配资源。3)每当进程动态申请资源或释放资源时,模拟程序应能及时显示或打印各个进程在此时刻的资源分配表、系统可用资源量和安全序列等资源分配信息和安全检查信息。4)本次实验内容(项目)的详细说明以及要求请参见实验指导书。3实验步骤与源程序《操作系统原理A》实验报告-2-《操作系统原理A》实验报告-3-《操作系统原理A》实验报告-4-《操作系统原理A》实验报告-5-4测试数据与实验结果(可以抓图粘贴)(1)程序运行时选择1,输入进程pr1的请求向量(1,0,2)经过程序计算,资源分配成功。资源具体分配过程如下图所示。得出一个安全序列为pr1,pr3,pr0,pr2,pr4。《操作系统原理A》实验报告-6-(2)进程pr0请求资源:pr0发出请求向量(2,2,2),由于Request0不大于Need0,Request0不大于Available0。系统试探着为它分配资源。由结果可知,系统不安全。则系统不分配资源,并回收系统预分配给pr0的资源。(3)程序运行时选择1,进行系统资源的分配。《操作系统原理A》实验报告-7-(4)修改资源分配:《操作系统原理A》实验报告-8-5结果分析与实验体会在编写程序不断出现错误和改正的过程序中加深了我对银行家算法的理解。这个系统的功能基本能满足要求,完成了对资源的修改还有用银行家算法和安全性算法来检查是否允许分配资源给进程。程序主要由两部分组成。第一部分是银行家算法,第二部分是安全性算法。①银行家算法1.如果Request=Need,则转向2;否则,出错2.如果Request=Available,则转向3,否则等待3.系统试探分配请求的资源给进程4.系统执行安全性算法②安全性算法1.设置两个向量(1).工作向量:Work=Available(表示系统可提供给进程继续运行所需要的各类资源数目)(2).Finish:表示系统是否有足够资源分配给进程(True:有;False:没有).初始化为False2.若Finish[i]=False&&Need=Work,则执行3;否则执行4(I为资源类别)3.进程P获得第i类资源,则顺利执行直至完成!并释放资源:Work=Work+Allocation;Finish[i]=true;转24.若所有进程的Finish[i]=true,则表示系统安全;否则,不安全!