- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《操作系统原理》
实验报告
银行家算法实验
专业:计算机科学与技术
学号:200902014012
姓名:杨瑜
实验日期:2012-5-9
一、实验目的
通过实验用编程语言模拟银行家诉法来加强对银行家安全算法的理解和掌握。
二、实验内容
熟悉避免死锁死锁与安全序列的关系银行家算法进程的安全序列1.可利用资源向量Available2.最大需求矩阵Max3.分配矩阵Allocation4.需求矩阵Nee模拟实现银行家算法以避免死锁的出现.分两部分组成:第一部分:银行家算法(扫描) 1.如果Request=Need,则转向2;否则,出错2.如果Request=Available,则转向3,否则等待3.系统试探分配请求的资源给进程4.系统执行安全性算法第二部分:安全性算法1.设置两个向量 (1).工作向量:Work=Available(表示系统可提供给进程继续运行所需要的各类资源数目) (2).Finish:表示系统是否有足够资源分配给进程(True:有;False:没有).初始化为False2.若Finish[i]=FalseNeed=Work,则执行3;否则执行4(I为资源类别) 3.进程P获得第i类资源,则顺利执行直至完成!并释放资源: Work=Work+Allocation;
Finish[i]=true;
转24.? 若所有进程的Finish[i]=true,则表示系统安全;否则,不安全!#include stdio.h
#define P_NUM 5
#define S_NUM 3
int Max[P_NUM][S_NUM],Allocation[P_NUM][S_NUM],Need[P_NUM][S_NUM];
int Available[S_NUM],Request[S_NUM];
int Work[S_NUM],Finish[P_NUM],CurrentProcessId=-1,Arrange[P_NUM],CurrentId=0;
FILE *fpr,*fpw;
int times=0;
void init()
{
int i=0,j=0;
for(i=0;iP_NUM;i++){
for(j=0;jS_NUM;j++){
scanf(%d,Max[i][j]);
}
for(j=0;jS_NUM;j++){
scanf(%d,Allocation[i][j]);
Need[i][j]=Max[i][j]-Allocation[i][j];
}
Finish[i]=0;
}
for(j=0;jS_NUM;j++){
scanf(%d,Available[j]);
}
}
void allocation()
{
int j=0,reasonable=1;
if(CurrentProcessId-1 CurrentProcessIdP_NUM){
printf(P%d Requests :( ,CurrentProcessId);
for(j=0;jS_NUM;j++){
Need[CurrentProcessId][j]=Need[CurrentProcessId][j]-Request[j];
Allocation[CurrentProcessId][j]=Allocation[CurrentProcessId][j]+Request[j];
Available[j]=Available[j]-Request[j];
printf(%d ,Request[j]);
if(Need[CurrentProcessId][j]0 || Available[j]0)reasonable=0;
}
printf()\n);
if(reasonable==0){
UnAllocation();
printf(The Request is not reasonable! The below table is same with the top table! \n);
}
}
}
int UnAllocation()
{
int j=0;
if(CurrentProcessId-1 CurrentProcessIdP_NUM){
for(j=0;jS_NUM;j++){
Need[CurrentProcess
您可能关注的文档
最近下载
- 中华优秀传统文化主题单元的教学思考与实践-来源:教育视界(智慧教学版)(第2021009期)-江苏凤凰教育出版社有限公司.pdf VIP
- 新沪科版九年级全一册初中物理全册课时练(课后作业设计).doc
- 色卡对照表RAL劳尔色卡电子版色.pdf
- 汉语教学 《成功之路+进步篇+1》第5课课件.pptx VIP
- 人造柴油生产技术.docx
- MB670掘锚机培训资料.ppt
- 大单元教学:物理八上《第六章 质量与密度》大单元整体教学设计(人教版).docx
- 运筹学全部_975电子版清华课件.pdf
- 心内科教学查房课件.pptx
- 2018款长城哈弗H2-1.5T手动自动两驱红标蓝标_汽车使用手册用户操作图解驾驶车主车辆说明书电子版.pdf
文档评论(0)