资源简介
银行家算法c++源代码
代码片段和文件信息
#include
using namespace std;
#define MAXPROCESS 50 /*最大进程数*/
#define MAXRESOURCE 100 /*最大资源数*/
int AVAILABLE[MAXRESOURCE]; /*可用资源数组*/
int MAX[MAXPROCESS][MAXRESOURCE]; /*最大需求矩阵*/
int ALLOCATION[MAXPROCESS][MAXRESOURCE]; /*分配矩阵*/
int NEED[MAXPROCESS][MAXRESOURCE]; /*需求矩阵*/
int REQUEST[MAXPROCESS][MAXRESOURCE]; /*进程需要资源数*/
bool FINISH[MAXPROCESS]; /*系统是否有足够的资源分配*/
int p[MAXPROCESS]; /*记录序列*/
int mn; /*m个进程n个资源*/
void Init();
bool Safe();
void Bank();
int main()
{
Init();
Bank();
Safe();
}
void Init() /*初始化算法*/
{
int ij;
cout<<“请输入进程的数目:“;
cin>>m;
cout<<“请输入资源的种类:“;
cin>>n;
cout<<“请输入每个进程最多所需的各资源数按照“< for(i=0;i for(j=0;j cin>>MAX[i][j];
cout<<“请输入每个进程已分配的各资源数也按照“<
for(i=0;i {
for(j=0;j {
cin>>ALLOCATION[i][j];
NEED[i][j]=MAX[i][j]-ALLOCATION[i][j];
if(NEED[i][j]<0)
{
cout<<“您输入的第“< j--;
continue;
}
}
}
cout<<“请输入各个资源现有的数目:“<
for(i=0;i {
cin>>AVAILABLE[i];
}
}
bool Safe() /*安全性算法*/
{
int ijkl=0;
int Work[MAXRESOURCE]; /*工作数组*/
for(i=0;i Work[i]=AVAILABLE[i];
for(i=0;i {
FINISH[i]=false; //判断每个进程是否执行过
}
for(i=0;i {
if(FINISH[i]==true)
{
continue;
}
else
{
for(j=0;j {
if(NEED[i][j]>Work[j])
{
break;
}
}
if(j==n)
{
FINISH[i]=true;
for(k=0;k
相关资源
- c++ ten超级井字棋源码
- 个人通讯录c++版完整代码
- 全国青少年信息学奥林匹克竞赛教程
- Visual C++ Build Tools 2015 离线包.part1/7
- vc++ 2005 express 完整安装包
- C++ 数据采集
- fastMatch的c++实现(需要opencv支持)
- 基于c++的简单文件传输
- 《C++ GUI QT编程》教程配套
- Visual C++项目开发案例全程实录(第二
- C++ Primer Plus 6th Edition source code files
- CRC32校验程序源代码( C++)
- VC++之MFC类库中文手册一怀去意---
- 华科大c++上机实验答案
- 普通算术编码的C++实现
- 自适应算术编码c++程序
- c/c++控制台游戏
- PE文件格式解析MFCC++源码
- VS2010之MFC入门到精通教程1-55全部
- 基于C++的实时数据库的设计与实现
- linux C/C++实现的通过url访问网页提取网
- fast角点检测c++
- 通讯录管理系统c++版顺序表存储,折
- The C++ Programing language(Special Edition)
- 初学者学习C++ Builder第一个程序模拟聊
- 初学者学习C++ Builder第一个程序模拟聊
- Disruptor C++版(仅支持单生产者)
- Visual C++开发大全提高卷)光盘资料
- 用C++栈写的中缀表达式求解
- c++线程安全日志类
评论
共有 条评论