资源简介
银行家算法实现,C++演示,带有源代码,有注释
代码片段和文件信息
#include
#include
#include
#include
#include
#define MM 10 //总进程数的最大值
#define NM 10 //总资源数的最大值
#define FALSE 0
#define TRUE 1
int MN;//总进程数,总资源数
//M个进程对N类资源最大资源需求量
int MAX[MM][NM];
//系统可用资源数
int AVAILABLE[NM];
//M个进程已经得到N类资源的资源量
int ALLOCATION[MM][NM]={0};
//M个进程还需要N类资源的资源量
int NEED[MM][NM];
int Request[NM]={0};
char flag=‘Y‘;
//输入数据
void inputdata()
{
int ij;
printf(“请输入进程个数以及资源种类数:\n“);
scanf(“%d %d“&M&N);
printf(“\n“);
printf(“请输入“);
for (j=0;j printf(“%c“j+65);
printf(“类资源的可用资源的个数:\n“);
for (j=0;j { scanf(“%d“ &AVAILABLE[j]);}
printf(“\n“);
printf(“请输入“);
for(i=0;i printf(“P%d“i);
printf(“所需的“);
for (j=0;j printf(“%c“j+65);
printf(“类资源的Max分别为:\n“);
for(i=0;i for (j=0;j { scanf(“%d“&MAX[i][j]);}
printf(“\n“);
printf(“请输入“);
for(i=0;i printf(“P%d“i);
printf(“分配“);
for (j=0;j printf(“%c“j+65);
printf(“类资源的个数分别为:\n“);
for(i=0;i for (j=0;j {
scanf(“%d“&ALLOCATION[i][j]);
NEED[i][j]=MAX[i][j]-ALLOCATION[i][j];
AVAILABLE[j]=AVAILABLE[j]-ALLOCATION[i][j];
}
}
//显示数据
void showdata()
{ int ijk;
inputdata();
cout<<“ 资源情况 Max Allocation Need Available“< printf(“ 进程“);
for(k=1;k<=4;k++)
for(i=0;i printf(“%6c“i+65);
printf(“\n“);
for(i=0;i { printf(“ P%d“i);
{ for (j=0;j printf(“%6d“MAX[i][j]);
}
{ for (j=0;j printf(“%6d“ALLOCATION[i][j]);
}
{ for (j=0;j printf(“%6d“NEED[i][j]);
}
k=i;
if(k==0)
{
for (j=0;j printf(“%6d“AVAILABLE[j]);
}
printf(“\n“);
}
cout< };
void changdata(int k)
{
int j;
for (j=0;j {
AVAILABLE[j]=AVAILABLE[j]-Request[j];
ALLOCATION[k][j]=ALLOCATION[k][j]+Request[j];
NEED[k][j]=NEED[k][j]-Request[j];
}
};
void restoredata(int k) //存储数据
{
int j;
for (j=0;j {
AVAILABLE[j]=AVAILABLE[j]+Request[j];
ALLOCATION[k][j]=ALLOCATION[k][j]-Request[j];
NEED[k][j]=NEED[k][j]+Request[j];
}
};
int check(int s) //检验是否为安全序列
{
int WORKFINISH[MM]temp[MM];
int ijk=0;
for(i=0;i for(j=0;j {
WORK=AVAILABLE[j];
i=s;
while(i {
if (FINISH[i]==FALSE&&NEED[i][j]<=WORK)
{
WORK=WORK+ALLOCATION[i][j];
FINISH[i]=TRUE;
temp[k]=i;
k++;
i=0;
}
else
{
i++;
}
}
for(i=0;i if(FINISH[i]==FALSE)
{
printf(“\n“)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 744 2009-04-27 22:17 银行家算法\可用.plg
文件 67949 2009-04-27 22:09 银行家算法\1.jpg
文件 36064 2009-04-27 22:11 银行家算法\2.jpg
文件 49075 2009-04-27 22:16 银行家算法\3.jpg
文件 41984 2009-06-04 00:24 银行家算法\银行家算法.ncb
文件 254 2009-06-04 00:24 银行家算法\银行家算法.plg
文件 4638 2009-04-27 22:25 银行家算法\银行家算法.cpp
文件 3451 2009-06-04 00:24 银行家算法\银行家算法.dsp
文件 48640 2009-06-04 00:24 银行家算法\银行家算法.opt
文件 528 2009-06-04 00:24 银行家算法\银行家算法.dsw
文件 237613 2009-04-27 22:17 银行家算法\Debug\可用.exe
文件 156672 2009-06-04 00:24 银行家算法\Debug\vc60.idb
文件 86016 2009-04-27 22:30 银行家算法\Debug\vc60.pdb
文件 3611932 2009-04-27 22:12 银行家算法\Debug\可用.pch
文件 29884 2009-04-27 22:17 银行家算法\Debug\可用.obj
文件 282020 2009-04-27 22:17 银行家算法\Debug\可用.ilk
文件 492544 2009-04-27 22:12 银行家算法\Debug\可用.pdb
文件 290512 2009-04-27 22:30 银行家算法\Debug\银行家算法.ilk
文件 237619 2009-04-27 22:30 银行家算法\Debug\银行家算法.exe
文件 607232 2009-04-27 22:30 银行家算法\Debug\银行家算法.pdb
文件 3628656 2009-04-27 22:30 银行家算法\Debug\银行家算法.pch
文件 30124 2009-04-27 22:30 银行家算法\Debug\银行家算法.obj
目录 0 2009-06-24 13:57 银行家算法\Debug
目录 0 2009-06-24 13:57 银行家算法
----------- --------- ---------- ----- ----
9944151 24
- 上一篇:C++职工信息管理 实现文件存取操作
- 下一篇:C++语言编写图像处理程序
相关资源
- 操作系统_生产者消费者c++、mfc实现
- 数据结构C语言版第2版源代码
- 通用杀毒软件VC++源代码
- MC算法C++实现 源代码
- Visual C++ 开发GIS系统 陈建春 配书源代
- C++版AVL树课程设计源代码
- stirmark数字水印攻击软件并包含源代码
- 图像去雾算法源代码c++
- windows下获取CPU、BIOS、硬盘、MAC地址
- 自制编程语言基于C语言郑钢源代码
- 计算机图形学基于opengl图形变换源代
- 常用算法程序集(C语言描述) (PD
- C++沉思录+源代码
- 推箱子 源代码 MFC
- 3D枪战射击游戏cs简单版源代码
- 军棋源代码
- ComplexMatrixMathLab(C++复数矩阵数学库,
- 磁盘调度c++模拟实现计算机操作系统
- 热血江湖服务端C++源代码,完整游戏
- 简单的OpenCV实现摄像头实时显示和视
- 基于SNMP的IP流量统计(VC++实现)源代
- 推箱子游戏VC6源代码 仓库番游戏VC6源
- 仿win7平台扫雷源代码
- 小甲鱼C语言课件
- VC++编写的组态软件源代码
- 《C/C++中国象棋程序入门与提高》源代
- 人体跟踪源代码,用visual c++
- 调用蓝牙打印机源代码
- grabcut的c++源代码
- VC++网络嗅探器的设计与实现源代码及
评论
共有 条评论