已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二实验报告实验源码:#include stdio.h#include #include #define False 0 / 定义False#define True 1 / 定义Trueint Max100100 = 0; / 各进程所需各类资源的最大需求int Avaliable100 = 0; / 系统可用资源char name100 = 0; / 资源的名称int Allocation100100 = 0; / 系统已分配资源int Need100100 = 0; / 还需要资源int Request100 = 0; / 请求资源向量int temp100 = 0; / 存放安全序列int Work100 = 0; / 存放系统可提供资源int M = 100; / 作业的最大数为100int N = 100; / 资源的最大数为100/ 显示资源矩阵void showdata()int i,j;printf(n此时刻的资源分配情况为:n);/ 显示表头printf( Max Allocation Need Avaliablen);printf(PCB );/ 显示作业名称for(j = 0;j 4;j+)for(i = 0;i N;i+)printf(%c ,namei);printf( );printf(n);/ 显示当前作业资源分配情况for(i = 0;i M;i+)printf( %d ,i);for(j = 0;j N;j+)printf(%d ,Maxij);printf( );for(j = 0;j N;j+)printf(%d ,Allocationij);printf( );for(j = 0;j N;j+)printf(%d ,Needij);if(i = 0) printf( );for (j = 0;j N;j+)printf(%d ,Avaliablej);printf(n);/ 进行资源分配int changdata(int i) int j;for (j = 0;j M;j+) Avaliablej = Avaliablej - Requestj;Allocationij = Allocationij + Requestj;Needij = Needij - Requestj;return 1;/ 安全性算法int safe()int i,d,k = 0,m,h,s,apply,Finish100 = 0;int j;int flag = 0;for(i = 0;i N;i+)Worki = Avaliablei;printf( 安全性检查 n);printf( Work Need Allocation Work+Allocation Finishn);printf(PCB );/ 显示作业名称for(j = 0;j 4;j+)for(i = 0;i N;i+)printf(%c ,namei);printf( );printf(n);/ 显示当前作业资源分配情况for(i = 0;i M;i+) apply = 0;for(j = 0;j N;j+)if (Finishi = False & Needij = Workj)apply+;if(apply = N)printf( %d ,i);for(d = 0;d N;d+)printf(%d ,Workd);printf( );for(d = 0;d N;d+)printf(%d ,Needid);printf( );for(d = 0;d N;d+)printf(%d ,Allocationid);printf( );for(m = 0;m N;m+) Workm = Workm + Allocationim;printf(%d ,Workm);/ 变分配数Finishi = True;tempk = i;printf( );printf(true );printf(n);i = -1; k+;flag+;for(i = 0;i M;i+)if(Finishi = False)for(j = 0;j N;j+)Avaliablej = Avaliablej + Requestj;Allocationij = Allocationij - Requestj;Needij = Needij + Requestj;printf(n系统进入不安全状态!此时系统不分配资源!n); / 不成功系统不安全return 0;printf(n此时系统是安全的!n); / 如果安全,输出成功printf(安全序列为:);for(i = 0;iM;i+) / 输出运行进程数组printf(%d,tempi);if(i );printf(n);return 0;/ 利用银行家算法对申请资源对进行判定void share()char ch;int i = 0,j = 0;ch = y;printf(n请输入要求分配的资源进程号(0 - %d):,M - 1);scanf(%d,&i); / 输入须申请的资源号printf(n请输入进程 %d 申请的资源:n,i);for(j = 0;j N;j+)printf(%c:,namej);scanf(%d,&Requestj); / 输入需要申请的资源for (j = 0;j Needij) / 判断申请是否大于需求,若大于则出错 printf(n进程 %d 申请的资源大于它需要的资源,i);printf( 分配不合理,不予分配!n);ch = n;break; else if(Requestj Avaliablej) / 判断申请是否大于当前资源,若大于则/ 出错printf(n进程 %d 申请的资源大于系统现在可利用的资源,i);printf( 分配出错,不予分配!n);ch = n;break; if(ch = y) changdata(i); / 根据进程需求量变换资源showdata(); / 根据进程需求量显示变换后的资源safe(); / 根据进程需求量进行银行家算法判断/ 主函数int main()int t = 1,i,j,number,choice,m,n,flag;char ming;printf(n请首先输入系统可供资源种类的数量:);scanf(%d,&n);N = n;for(i = 0;i n;i+)printf(资源 %d 的名称:,i + 1);scanf(%s,&ming);namei = ming;printf(资源的数量:);scanf(%d,&number);Avaliablei = number;printf(n);printf(请输入作业的数量:);scanf(%d,&m);M = m;printf(n请输入各进程的最大需求量( %d * %d 矩阵)Max:n,m,n);for(i = 0;i m;i+)for(j = 0;j n;j+)scanf(%d,&Maxij);doflag = 0;printf(n请输入各进程已经申请的资源量( %d * %d 矩阵)Allocation:n,m,n);for(i = 0;i m;i+)for(j = 0;j Maxij)flag = 1;Needij = Maxij - Allocationij;if(flag)printf(n申请的资源大于最大需求量,请重新输入!nn);while(flag);showdata(); / 显示各种资源safe(); / 用银行家算法判定系统是否安全while(1)if(t = 1)printf(n 利用银行家算法预分配资源 n);share();t = 0;else b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学26年:吉兰巴雷综合征呼吸管理 查房课件
- 医学26年:妊娠合并胆囊炎诊疗 查房课件
- 举办安全管理培训
- 通州应急方案
- 【写人作文】我的妈妈
- 煤炭安全研究论文讲解
- 2.1揭开情绪的面纱课件 2025-2026学年统编版道德与法治七年级下册
- GCP试题及答案资料
- 行政管理学试题及解析
- 护士内科护理试题及解析
- 浙江省工商联:2023浙江民营企业数字化转型调研报告
- 2024年西藏开发投资集团有限公司招聘笔试参考题库含答案解析
- 新零件成熟度保障MLA培训
- 会计师事务所保密制度
- 写生基地建设方案
- 和大人一起读:《狐狸和乌鸦》
- 清洁环境-爱我校园-主题班会(共18张PPT)
- 四川省河长制湖长制基础数据表结构与标识符(试行稿)
- 维克多高中英语3500词汇
- 顶板危险源辨识及防范措施
- LED照明培训教程课件
评论
0/150
提交评论