- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
现代操作系统上机实验报告
(标题一号黑体)
学 院 软件学院
年
级
05
级
班
级
3
班
成
员
姓名
李雨生
学号3005218065
姓名
王尽宇
学号3005218077
实验一:方法一:
一、银行家算法的模拟实现1。目的:
编一个程序,模拟实现银行家算法,以此来实现我们对此算法的认识。
2。实现方案:
按照书上的例子,来规定每个进程所需要的资源,以及计算机所拥有的资源。同样是五个进程。我们使用VisualC++6.。0创建了2个二维数组来模拟当前分配的资源以及需要的资源,3个一维数组来模拟资源总数,现在占用的资源,以及还剩下的资源,当我们输入了所有的当前分配的资源后,我们开始来计算剩下的资源是不是安全,当可以完全满足一个进程的需要时,释放他占有的全部资源。依次来看是否可以完成所有的进程,如是,则安全,否,则不安全。然后将结果存入文本;
本程序的流程图如下:
3。说明以及实例
用的是书上的例子。
全部的资源从一号到4号为634。2
一号进程总的需要
4
1
1。1
二号进程总的需要
0
2
1。2
三号进程总的需要
4
2
1。0
四号进程总的需要
1
1
1。1
五号进程总的需要211。0代码:
#includeiostream#includefstreamusingnamespacestd;intmain()
{
intc[6][5];//现在的资源;intr[6][5];
inte[5]={0,6,3,4,2};
intp[5];
inta[5];boolsolve;boolre=true;charch;
fstreamofstream;ofstream.open(banker.txt,ios::out);
while(re==true)
{
r[1][1]=4;
r[1][2]=1;
r[1][3]=1;
r[1][4]=1;
r[2][1]=0;
r[2][2]=2;
r[2][3]=1;
r[2][4]=2;
r[3][1]=4;
r[3][2]=2;
r[3][3]=1;
r[3][4]=0;
r[4][1]=1;
r[4][2]=1;
r[4][3]=1;
r[4][4]=1;
r[5][1]=2;
r[5][2]=1;
r[5][3]=1;
r[5][4]=0; //初始化需要的资源re=false;
for(intj=1;j=5;j++)
{
for(inti=0;i=4;i++)
{
c[j][i]=0;
p[i]=0;
}
}
for(j=1;j=5;j++)
{
coutprintinthenumberjprocessssource.endl;for(inti=1;i=4;i++)
{
cinc[j][i];
p[i]=p[i]+c[j][i];
a[i]=e[i]-p[i];r[j][i]=r[j][i]-c[j][i];
}
} //输入要写入的资源需求
while(1)
{
solve=false;
for(inti=1;i=5;i++)
{
if(c[i][0]==0)
break;
}
if(i==6) //判定:如果5个进程全部结束,则安全
{
ofstreamsecurity!endl;break;
}
for(i=1;i=5;i++)
{
for(j=1;j=4;j++)
{
if(r[i][j]a[j])break;
}
if(j==5c[i][0]!=1)
{
for(j=1;j=4;j++)
{
a[j]=c[i][j]+r[i][j]+a[j];r[i][j]=0;
c[i][j]=0;
c[i][0]=1;
solve=true;
}
}
}
if(solve==false) //如果有至少一个进程没结束
{
ofstreamnotsecurity!endl;break;
}
}
coutdoyuwanttorestart(y/n)?endl;cinch;
if(ch==y||ch==Y)re=true;
elseif(ch==n||ch==N)re=false;
}
ofstream.close();return0;
}
截屏结果:
方法二:
一.试验目的:
这是银行家算法的模拟程序,该程序能够循环检查每一个提出请求的银行客户,并且能判断这一请求是否安全。并且有关请求和相应决定的列表输出到一个文件中。
二.实现方案:使用c#语言思想如下:
查找仍需资源中是否有一行,其没有被满足的资源数均小于或等于可用资源.如果不存在这样的行,那么系统就会死锁,状态就是不安全的.
假若找到这样一行,那么可以假设它获得所需的资源
您可能关注的文档
- 危险区域动火制度.docx
- 危险化学品专项整治工作总结.docx
- 现在我们来读读那些千年传诵的名句吧.docx
- 现在完成时中延续性动词和非延续性动词.docx
- 现在完成时与一般过去时讲解与比较和中考真题练习.docx
- 现在完成时延续与非延续性动词练习.docx
- 现在完成时延续性与暂短性动词用法.docx
- 现在完成时延续性动词专练.docx
- 现在完成时练习.docx
- 现在完成时被动语态导学案及答案.docx
- Unit 3 语法(复习讲义)-2023-2024学年三年级英语上册单元速记·巧练(译林版三起).docx
- Module3语法易错+巩固练习-2023-2024学年四年级英语下册寒假自学课(外研版三起).docx
- Unit 5单元话题拓展阅读“四季”(含答案)译林版三起.docx
- Module4课文知识预习+巩固练习-2023-2024学年四年级英语下册寒假自学课(外研版三起).docx
- M9U2课文知识复习+巩固练习-2023-2024学年六年级英语上册单元速记·巧练(外研版三起).docx
- Unit 2 语法(复习讲义)-2023-2024学年六年级英语上册单元速记·巧练(译林版三起) .docx
- Unit 5 必备知识(复习讲义)-2023-2024学年四年级英语上册单元速记·巧练(译林版三起).docx
- Module4语法易错+巩固练习-2023-2024学年四年级英语下册寒假自学课(外研版三起).docx
- 固定收益转债低价券投资方法论.pdf
- 量化观市:政策落地间隔期,低估值和业绩超预期板块值得关注.pdf
文档评论(0)