• 大小: 5KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: C/C++
  • 标签: c++  

资源简介

银行家算法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   

评论

共有 条评论