资料库
首页
行业资料库
养殖
模电
互联网
生活资料库
说明书
学习资料库
面试题
答案
预防进程死锁的银行家算法.doc
发布时间:2022-06-08
发布人:admin
分类:
说明书
资料大小:0.03M
资料格式:doc
举报
版权申诉
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
下载资料
收藏
0
文本预览
//已经分配的资源 预防进程死锁的银行家算法 /***************************************************** ** ** *****************************************************/ #include
#include
#include
using namespace std; //==================================================== static const int MaxNumber = 100; //最大进程数 int Available[MaxNumber] = {0}; //可分配的资源 int Max[MaxNumber][MaxNumber] = {0}; int Allocation[MaxNumber][MaxNumber] = {0}; int Need[MaxNumber][MaxNumber] = {0}; int Request[MaxNumber] = {0}; int SafeOrder[MaxNumber] = {0}; int Work_Allocation[MaxNumber][MaxNumber] = {0}; 资源之和 int Work[MaxNumber][MaxNumber] = {0}; bool Finish[MaxNumber] = {false}; int n = 0; int m = 0; void Input_Data(); void Bankers_Algorithm(int index); void Security_Algorithm(); void Output_Table1(); void Output_Table2(); void Func1(ifstream &in,int Array[][MaxNumber]); void Func2(char ch); void Func3(int i,int (*Array)[MaxNumber]); //==================================================== int main() { //进程总数 //资源种类 //输入函数 //银行家算法 //安全性算法 //输出资源分配表 //输出安全系列表 预防进程死锁的银行家算法 cout<<"***********************************************\n"; cout<<"** **\n"; cout<<"***********************************************\n"; Input_Data();//输入函数 for(int i = 0;i < n;i++) {//n 个资源,执行 n 次分配 //重复率高的过程函数 1 //重复率高的过程函数 2 //重复率高的过程函数 3 //需要的资源总数 //尚且需要的资源 //请求的资源 //安全序列 //系统可以提供的资源与已经分配的 //系统可以提供的资源 //进程是否结束的标志 T"<
>choice; Bankers_Algorithm(choice);//银行家算法 }
return 0; } //==================================================== void Input_Data() { ifstream in("data.txt"); in>>n;//读入进程数 cout<<"进程数:"<
>m;//读入资源种类 cout<<"资源种类:"<
>Available[i]; } cout<<"请输入请求向量:\n"; for(int h = 0;h < m;h++) { cin>>Request[h]; } int i = index; int count3 = 0; int count4 = 0; for(int j = 0;j < m;j++) {//计算请求的资源是否不大于需要的资源 if(Request[j] <= Need[i][j]) count3++; } if(count3 == m) {//请求的资源不大于需要的资源 for(int k = 0;k < m;k++) if(Request[k] <= Available[k])//计算请求的资源是否不大于可用的资源 count4++; if(count4 == m) {//请求的资源不大于可用的资源 for(int l = 0;l < m;l++) {//修改资源分配表 Available[l] -= Request[l]; Allocation[i][l] += Request[l]; Need[i][l] -= Request[l];
} } else {//请求的资源大于可用的资源 } } else {//请求的资源大于需要的资源 cout<<"错误:尚无足够资源,p"<
}//if }//if }//for }//for if(count1 == n) { cout<<"系统处于安全状态!\n"<<"安全序列:{"; for(int i = 0;i < n;i++) {//输出安全序列 cout<<"P"<
cout<<"-----------------------------------------------\n"; cout<<"\t"<<"Work"<<"\t"<<"Need"<<"\t"<<"Allo"<<"\t"<<"W+Al"<<"\t"<<"Finish"<
>Array[i][j]; } } cout<<"\t"; for(int k = 0;k < 4;k++) { for(int h = 0;h < m;h++) { if(ch == 'A') cout<
cout<
分享到:
赞
收藏
上一篇
An introduction to numerical analysis.pdf
下一篇
锅炉汽包水位智能控制器设计(附图).doc
相关推荐
2023年江西萍乡中考道德与法治真题及答案.doc
2012年重庆南川中考生物真题及答案.doc
2013年江西师范大学地理学综合及文艺理论基础考研真题.doc
2020年四川甘孜小升初语文真题及答案I卷.doc
2020年注册岩土工程师专业基础考试真题及答案.doc
2023-2024学年福建省厦门市九年级上学期数学月考试题及答案.doc
2021-2022学年辽宁省沈阳市大东区九年级上学期语文期末试题及答案.doc
2022-2023学年北京东城区初三第一学期物理期末试卷及答案.doc
2018上半年江西教师资格初中地理学科知识与教学能力真题及答案.doc
2012年河北国家公务员申论考试真题及答案-省级.doc
2020-2021学年江苏省扬州市江都区邵樊片九年级上学期数学第一次质量检测试题及答案.doc
2022下半年黑龙江教师资格证中学综合素质真题及答案.doc
资料库
课程资源
共收录17145份资料,累计13个分类,关注成员有19位,主要包括:PHP,网络管理,网页制作,Java,.Net,数据库,3G/移动开发,C/C++,游戏开发,嵌入式,讲义,软件测试,专业指导
热门标签
PHP
网络管理
网页制作
Java
.Net
数据库
3G/移动开发
C/C++
游戏开发
嵌入式
讲义
软件测试
专业指导
最新资料
2022-2023学年河北省唐山市高三上学期期末数学试题及答案.doc
2022-2023学年河北省张家口市高三上学期期末数学试题及答案.doc
2022-2023学年河北省衡水市高三上学期期末语文试题及答案.doc
2022-2023学年河北省保定市高三上学期期末数学试题及答案.doc
2022-2023学年河北省张家口市高三上学期期末语文试题及答案.doc
2022-2023学年河北省石家庄市高三上学期期末语文试题及答案.doc
2020-2021年四川省凉山州西昌市高一物理上学期期中试卷及答案.doc
2020-2021年四川省遂宁市安居区高一英语上学期期中试卷及答案.doc
2020-2021年四川省西昌市高一英语上学期期中试卷及答案.doc
2021-2022年四川省广安市岳池县高一地理上学期期中试卷及答案.doc
2021-2022年四川省成都市郫都区高一物理上学期期中试卷及答案.doc
2021-2022年四川省广安市岳池县高一物理上学期期中试卷及答案.doc