操作系统实验二(银行家算法)实验报告_第1页
操作系统实验二(银行家算法)实验报告_第2页
操作系统实验二(银行家算法)实验报告_第3页
操作系统实验二(银行家算法)实验报告_第4页
操作系统实验二(银行家算法)实验报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验二实验报告实验源码:#包括 stdio.h #包括#包括#定义假0 /定义错误的#定义真1 /定义真实的int最大值100100= 0 ;/各进程所需各类资源的最大需求int可用100= 0 ;/系统可用资源茶名称100= 0 。/资源的名称int分配100100= 0 ;/系统已分配资源int需求100100= 0 ;/还需要资源int请求100= 0 。/请求资源向量int temp100= 0 ;/存放安全序列int Work100= 0 ;/存放系统可提供资源整数M=100/作业的最大数为100整数N=100/资源的最大数为100/显示资源矩阵void showdata()int

2、i,j;printf(n此时刻的资源分配情况为: n );/显示表头printf(最大分配需求可用 n );印刷电路板;/显示作业名称对于(j=0;j 4;j )对于(1=0;国际新闻;printf(“% c”,名称;printf( );printf( n );/显示当前作业资源分配情况对于(1=0;男;i )打印(“% d”,I);对于(j=0;新泽西州;j)printf(% d ,最大值一j);printf( );对于(j=0;新泽西州;j)printf(% d ,分配一j);printf( );对于(j=0;新泽西州;j)printf(% d ,需要一j);if(i=0)printf(

3、);对于(j=0;新泽西州;j)printf(% d ,可用j);printf( n );/进行资源分配int changdata(int i)int j;对于(j=0;j . M .j ) 可用j=可用j -请求j;分配ij=分配ij请求j;需要ij=需要ij -请求j;返回1;/安全性算法int safe()int i,d,k=0,m,h,s,应用,完成100= 0 。int j;int标志=0。对于(1=0;国际新闻;工作i=可用一;printf(安全性检查 n );printf(工作需求分配工作分配完成 n );印刷电路板;/显示作业名称对于(j=0;j 4;j )对于(1=0;国际新

4、闻;printf(“% c”,名称;printf( );printf( n );/显示当前作业资源分配情况对于(1=0;男;i )apply=0;对于(j=0;新泽西州;j )如果(完成i=假需要ij=工作j)申请;如果(应用=否)打印(“% d”,I);对于(d=0;d N;d)printf(% d ,工作d);printf( );对于(d=0;d N;d)printf(% d ,需要一四);printf( );对于(d=0;d N;d)printf(% d ,分配一四);printf( );对于(m=0;m N;m)工作m=工作m分配我m;printf(% d ,工作m);/变分配数完成i

5、=真;温度我;printf( );printf( true );printf( n );I=-1;k;旗帜;对于(1=0;男;i )如果(完成i=假)对于(j=0;新泽西州;j )可用j=可用j请求j;分配ij=分配ij -请求j;需要ij=要求j;printf(n系统进入不安全状态!此时系统不分配资源! n );/不成功系统不安全返回0;printf(n此时系统是安全的! n );/如果安全,输出成功printf(安全序列为:);对于(1=0;);printf( n );返回0;/利用银行家算法对申请资源对进行判定无效份额()char chint i=0,j=0;ch=y .printf(n

6、请输入要求分配的资源进程号(0 - %d): ,M-1);扫描(“% d”,I);/输入须申请的资源号printf(n请输入进程%d申请的资源:n ,I);对于(j=0;新泽西州;j)printf( 360 ,名称j);扫描(“%d”,请求j);/输入需要申请的资源对于(j=0;新泽西州;j )如果(请求j需要ij) /判断申请是否大于需求,若大于则出错printf(n进程%d申请的资源大于它需要的资源;printf(分配不合理,不予分配! n );ch=n .休息;其他如果(请求j可用j) /判断申请是否大于当前资源,若大于则/出错PRINTF(“ n进程%d请求的资源大于系统当前可用的资源

7、”,I);Printf(分配错误,没有分配! n );ch=n。休息;if(ch=y) 昌达塔(I);/根据流程需求转换资源show data();/根据流程需求显示转换后的资源safe();/根据流程需求判断银行家算法/主要功能int main()int t=1,I,j,数字,选项,m,n,标志;充电;首先打印( n请输入系统可用的资源类型数: );scanf(“% d”,n);N=n。对于(I=0;I n;(I)Printf(资源名称%d : ,I 1);scanf(“% s”,明);nameI=Ming;Printf(“资源数量:”);scanf(“% d”,数字);可用i=数字。pri

8、ntf( n );打印(“请输入作业数量:”);scanf(“% d”,m);M=m。PRINTF( n请输入每个进程的最大需求(%d * %d矩阵)最大:n ,m,n);对于(I=0;I m;(I)对于(j=0;j . n .j)扫描(“%d”,最大Ij);做标志=0;PRINTF( n请输入每个进程请求的资源量(%d * %d矩阵)分配:n ,m,n);对于(I=0;I m;(I)对于(j=0;j . n .j )扫描(“%d”,分配Ij);如果(分配ij最大ij)标志=1;需要ij=最大ij -分配Ij;if(标志)PRINTF( n请求的资源大于最大需求,请重新输入! n n );同时(旗帜);show data();/显示各种资源safe();/用银行家算法判断系统是否安全而(1)if(t=1)打印(使用银行家算法预分配资源);股份();t=0;否则就休息。printf( n是否要继续银行家

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论