使用银行家算法实现系统资源的分配和安全性检查模拟.docxVIP

使用银行家算法实现系统资源的分配和安全性检查模拟.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1目的与要求: 1)本实验目的是通过使用银行家算法实现系统资源的分配和安全性检查模拟,提高学 生对操作系统资源分配功能的深刻理解; 2)实验前必须认真阅读和理解银行家算法的基本原理和实现方法; 3)阅读银行家算法模拟程序; 4)按照实验题目要求独立正确地完成实验内容(调试算法程序,注释,提交程序清单 及及相关实验数据与运行结果)2实验内容或题目 1)设计五个进程{P0,P1,P2,P3,P4}共享三类资源{A,B,C}的系统,{A,B,C}的 2)P1发出请求Request(1,0,2),求出安全序列。 程序: #includestdio.h#defineMAXSIZE50voidmain(){ unsignedintSafeSequence[MAXSIZE];〃安全序列 unsignedintWork[MAXSIZE];〃工作向量 boolFinish[MAXSIZE];〃是否有足够资源分配给进程,使之运行完成 unsignedintNeed[MAXSIZE][MAXSIZE]; intp;〃请求资源的进程的下标 inttemp=0; unsignedintRequest[MAXSIZE];〃请求向量 unsignedintAvailable[MAXSIZE];〃可利用资源向量 intclaim[5][3]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}}; intallocation[5][3]={{0,1,0},{2,0,0},{3,0,2},{2,1,1},{0,0,2}}; inti,j,k,l=0,count=0,m=0; intC_A[5][3]={{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}; intresult[5]={-1,-1,-1,-1,-1}; intcurrentavail[3]={3,3,2}; printf(allsource:\nABC\n1057\n); printf(available:\nABC\n332\n); printf(need:\nABC\n); for(i=0;i5;i++) {printf(P%d:,i+1);for(j=0;j3;j++){printf(%d,claim[i][j]);C_A[i][j]=claim[i][j]-allocation[i][j];}printf(\n); } printf(allocation[i][j]:\nABC\n); for(i=0;i5;i++) {printf(P%d:,i+1);for(j=0;j3;j++)printf(%d,allocation[i][j]);printf(\n); } printf(need[i][j]:\nABC\n); for(i=0;i5;i++) {printf(P%d:,i+1);for(j=0;j3;j++)printf(%d,C_A[i][j]);printf(\n); } while(result[l]==-1) {for(k=0;k5;k++)if(result[k]==-1){for(j=0;j3;j++)if(C_A[k][j]=currentavail[j]C_A[k][j]=0) currentavail[j]=currentavail[j]+allocation[k][j];m++;if(m==3){result[l]=k;m=0;}}elsebreak;l++;}for(i=0;il;i++)if(result[i]!=-1){printf(P%d-”,result[i]+1);count++;}l=0; } do { printf(\n); printf(资源请求:\n); printf(-\t输入请求资源的进程下标:”); scanf(%d”,p); printf(\t进程P%d请^\n,p); //初始化请求向量 for(i=0;i3;i++) { printf(\t\t%c类资源:,65+i); scanf(%d”,Request[i]); } for(i=0;i3;i++)〃检查Request=Need? if(Request[i]Need[p][i]) { printf(\t请求的%c类资源数超过它所宣布的最大值!\n”,65+i); break; } if(i==3)//通过上层检查,继续检查Request=Available? { for(i=0;i3;i++) if(Request[i]Available[i]) { printf(\t尚无足够%。类资源,P%d须等待!\n”,65+i,p);break; } } if(i==3)〃尝试分配 { for(i=0;i3;i++) { Avai

文档评论(0)

l521314z + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档