⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 6.c

📁 c.rar___z8786052200751110333362469.rar
💻 C
字号:
main()
{
  int k;                          /*标志进程是否运行完全*/   
  int x=1,y=1;
  int s[1][4];                    /*定义总资源*/
  int allocation[5][4];           /*定义已占有的资源,有5个用户、4个资源*/
  int need[5][4];                 /*定义总的所需的资源*/
  int available[5][4];            /*定义现有的资源*/
  int claim[5][4];                /*定义还需要的资源*/
  printf("请输入总资源 \n");
  scanf("%d",&s[1][4]);           /*输入总资源*/
  printf("请输入总的所需资源 \n");
  for(x=1;x<6;x++)                /*输入总的所需资源*/
     {
       for(y=1;y<=4;y++)
  scanf("%d",&need[x][y]);
     }
  printf("请输入已占有的资源 \n");
  for(x=1;x<6;x++)                /*输入已占有的资源*/
     {
      for(y=1;y<=4;y++)
 scanf("%d",&allocation[x][y]);
     }
  for(x=1;x<6;x++)
   {
    for(y=1;y<=4;y++)
    {
      claim[x][y]=need[x][y]-allocation[x][y]; /*还需要的=总需要-已占有的*/
      available[x][y]=s[1][y]-allocation[x][y];/*现有的=总资源-已占有的*/
    }
   }
   for(y=1;y<=4;y++)
    {
     if(s[1][y]==0)             /*如果总资源中有为0*/
      {
       for(x=1;x<6;x++)
       {
 claim[x][y]!=0;             /*而且还需要的资源中有不为0*/
 break;                      /*跳出循环*/
       }
       printf("\n 不安全 \n");  /*输出不安全*/
      }
     else                       /*如果总资源都不为0*/
     {
      for(x=1;x<6;x++)
      {
       if(claim[x][y]<=available[x][y])      /*如果还需要的小于等于现有的*/
    {
     available[x][y]=available[x][y]+need[x][y];  /*执行线程*/
     printf("运行第 %d 行",x);
     printf("第 %d 列 \n",y);
     k++;                              /*k为是否运行完全的标志*/
    }
       else                               /*如果还需要的大于现有的*/
     printf("\n不安全\n");             /*输出 不安全*/ 
   }
       if(k==20)                          /*如果完全运行完所有的进程*/
     printf("\n 安全 \n");             /*输出 安全*/
       
     }
   }
 }


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -