亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bank.cpp

?? 進程并發運行的進程管理模擬系統進程 并發運行的進程管理模擬系統進程 并發運行的進程管理模擬系統進程 并發運行的進程管理模擬系統進程 并發運行的進程管理模擬系統進程并發運行的進程管理模擬系統
?? CPP
字號:
#include<iostream.h>

struct PCB{
 char state;
 int request;
 int max;
 int allocation;
};

void randomallocation(struct PCB p[],int av);
bool safecheck(struct PCB p[],int av);
void bankallocation(struct PCB p[],int av);
void show(struct PCB p[],int av);
void showorder(int order[]);
void main()
{
    struct PCB process[3];
 int i;
 int j;
 int k;
    int available=10;

    for(i=0;i<3;i++)
 {
    cout<<endl;
    cout<<"p"<<i<<"->max: ";
    cin>>process[i].max;
    if(process[i].max>10)
    {
     cout<<endl;
     cout<<"錯誤,請重新輸入!";
     i--;
    }
    else
    {
     do{
        cout<<endl<<"->allocation: ";
        cin>>process[i].allocation;
     }while((process[i].allocation>process[i].max)||

(available-process[i].allocation<0));
           available=available-process[i].allocation;
     process[i].request=0;
     process[i].state='R';
    }
 }

 show(process,available);
    cout<<endl<<"1--隨機分配算法         2--銀行家算法";
    do{
       cout<<endl<<"請選擇: ";
       cin>>i;
    }while(!((i==1)||(i==2)));
    if(i==1)
       randomallocation(process,available);
    else
    {
       do{
          if(safecheck(process,available)==false)
    {
        cout<<endl<<"當前為不安全狀態!";
              cout<<endl<<"       1--退出     2--重置";
     do{
     cout<<endl<<"選擇: ";
     cin>>k;
     }while((k!=1)&&(k!=2));
    if(k==2)
    {
          available=10;
       for(j=0;j<3;j++)
    {
             cout<<endl<<"p"<<j<<"->allocation: ";
          cin>>process[j].allocation;
       available=available-process

[j].allocation;
    }
    }
    }
       else {k=0;break;}
    }while(k==2);
     if(k==1)return;
     else if(k==0)bankallocation(process,available);
 }
}
void showorder(int order[]){
   int i;

   cout<<endl<<"安全序列為: ";

   for(i=0;i<3;i++)
   {
       cout<<"p"<<order[i]<<"   ";
   }
   
}
void show(struct PCB p[],int av){
   int i;
   cout<<endl<<"available="<<av;
   cout<<endl<<"number      max      request      allocation    state";
   for(i=0;i<3;i++)
   {
      
 

    cout<<endl<<i;
    cout<<"            ";
    cout<<p[i].max;
    cout<<"            ";
    cout<<p[i].request;
    cout<<"            ";
    cout<<p[i].allocation;
    cout<<"            ";
    cout<<p[i].state;
    cout<<endl;
   }

}
void randomallocation(struct PCB p[],int av){
 int i=0;
 int j=0;
 int w;
 int e;
 while(1){
    if(i==3) i=i-3;
    while(1)
    {
       if(i==3)i=i-3;
    else
       if(p[i].state=='R')
    {
       do{
       cout<<endl<<"p"<<i<<"->request: ";
                cin>>p[i].request;
    }while(p[i].request>(p[i].max-p

[i].allocation));
    break;
    }
       else i++;
    }
       
    if(p[i].request<=av)
       {
    av=av-p[i].request;
    p[i].allocation=p[i].allocation+p[i].request;
    p[i].request=0;
    if(p[i].max==p[i].allocation)
    { 
    av=av+p[i].allocation;
    p[i].state='E';
    p[i].allocation=0;
    p[i].request=0;
   
    }
          j=0;
          while(j<3)
    {

     if((p[j].request<=av)&&(p[j].state=='W'))
              {
        av=av+p[j].allocation;
     p[j].request=0;
     p[j].state='E';
     p[j].allocation=0;
    
     }
     if((p[j].max<av+p[j].allocation)&&(p

[j].state=='W'))
     { 
     p[j].state='R';
     }
     
     j++;
    }
    show(p,av);
 

    }
    else
    {
   p[i].state='W';
   show(p,av);
    }

    w=0;
    e=0;
    for(j=0;j<3;j++)
    {
    if(p[j].state=='W')
   w++;
    else if(p[j].state=='E')
   e++;
    else break;
    }
    
    if(((w+e)==3)&&(w!=0))
    {
    cout<<endl<<"發生死鎖!";
         
    return;
    }
    else if(e==3)
    {
    cout<<endl<<"三個進程順利執行完!";
 
       return;
    } 

    i++;
 }
}
void bankallocation(struct PCB p[],int av){
    int k;
 int request;
 int f;
 int i;
 show(p,av);
 while(1)
 {
    request=0;
    k=-1;
    do 
    {
     if(k!=-1)cout<<endl<<"不是安全狀態!";
     av=av+request;         
           p[k].allocation=p[k].allocation-request;
     do{
     cout<<endl<<"p"<<"->NO.: ";
        cin>>k;
     }while(p[k].state!='R');
     do
     {
     cout<<endl<<"p"<<k<<"->request: ";
     cin>>request;
     }while(request>(p[k].max-p[k].allocation));
           if(request>av)
     {
        p[k].request=request;
     p[k].state='W';
     break;
     }
      p[k].allocation=p[k].allocation+request;
     av=av-request;
    }while(safecheck(p,av)!=true);

    if(p[k].allocation==p[k].max)
    {
     p[k].state='E';
     av=av+p[k].allocation;
           p[k].allocation=0;
    }
    for(i=0;i<3;i++)
    {
       if((p[i].state=='W')&&(p[i].request<=av))
    {
       if(safecheck(p,av)==true)
    {
        p[i].allocation=p[i].request+p

[i].allocation;
     av=av-p[i].request;   

  
     p[i].request=0;
     p[i].state='R';

     if(p[i].max==p[i].allocation)
     {
        p[i].state='E';
     av=av+p[i].allocation;
     p[i].allocation=0;
     }
    }
    else
    {
       cout<<endl<<"不是安全狀態!原請求資源量無效.";
       p[i].request=0;
    p[i].state='R';
    }
    }
    }
       show(p,av);
    f=0;
       for(i=0;i<3;i++)
    {
       if(p[i].state=='E')f++;
    }
    if(f==3)
    {
   cout<<endl<<"所有進程順利執行完!"; 
      break;
    }
 }
}
bool safecheck(struct PCB p[],int av)
{

   bool finish[3];
   int order[3];
   int i;
   int j=0;
   int f=0;
   int k=0;

   int work;
   int temp;
   work=av;
   for(i=0;i<3;i++)
   {
      order[i]=0;
   if(p[i].state=='E')
    finish[i]=true;
   else
       finish[i]=false;
   }
   while(k<3){
   for(i=0;i<3;i++)
   {
   if((p[i].state=='W')&&(p[i].request<=work)&&(finish[i]

==false))
   {
         temp=p[i].allocation;
   p[i].allocation=p[i].request+p[i].allocation;

   }      
   if(((p[i].allocation+work)>=p[i].max)&&(finish[i]==false))
   {

   work=p[i].allocation+work;
   finish[i]=true;
   order[j]=i;
         j++;

         if(p[i].state=='W')p[i].allocation=temp;
   }

   }
   k++;
}
   for(i=0;i<3;i++)
      if(finish[i]==true)
    f++;
   if(f==3)
   {
    //showorder(order);
       return true;
   }
   else
     return false;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜在线视频| 色久综合一二码| 日韩精品一卡二卡三卡四卡无卡| 亚洲国产成人午夜在线一区| 久久久亚洲国产美女国产盗摄 | 欧美大片在线观看| 制服丝袜亚洲播放| 欧美一区日本一区韩国一区| 欧美日韩国产在线播放网站| 欧美日韩日日摸| 91麻豆精品国产91久久久使用方法| 欧美亚洲一区三区| 欧美日韩国产另类一区| 欧美综合在线视频| 欧美日韩一级片网站| 欧美日韩一二区| 69堂国产成人免费视频| 91精品国产美女浴室洗澡无遮挡| 538prom精品视频线放| 欧美精品精品一区| 精品久久久久一区二区国产| 26uuu色噜噜精品一区二区| 久久日韩精品一区二区五区| 亚洲国产精品v| 亚洲人xxxx| 亚洲国产精品天堂| 免费av网站大全久久| 久久精品国产在热久久| 国产91丝袜在线播放0| 99久久国产综合精品色伊| 色婷婷香蕉在线一区二区| 欧美无人高清视频在线观看| 欧美一区二区日韩| 欧美精品一区二区三区蜜臀| 国产精品久久久久毛片软件| 亚洲男同1069视频| 日韩综合一区二区| 国产精品中文字幕一区二区三区| 成人黄色网址在线观看| 欧美在线你懂得| 欧美岛国在线观看| 综合激情成人伊人| 亚洲超碰精品一区二区| 国产在线一区二区| 成人免费高清在线观看| 欧美日韩你懂得| 久久久精品免费网站| 亚洲精品国产a| 狠狠色丁香久久婷婷综合_中| 高清在线不卡av| 在线视频欧美精品| 精品国产91洋老外米糕| 中文字幕人成不卡一区| 日韩精品亚洲专区| 成人一区二区三区| 欧美高清精品3d| 国产精品毛片无遮挡高清| 亚洲成人动漫在线观看| 国产成人丝袜美腿| 欧美精品视频www在线观看 | 亚洲欧美色图小说| 毛片一区二区三区| 精品视频在线视频| 国产欧美日本一区二区三区| 亚洲一区二区av在线| 国产成人综合自拍| 欧美日韩二区三区| 中文久久乱码一区二区| 视频一区二区三区在线| eeuss鲁片一区二区三区| 欧美一三区三区四区免费在线看| 国产精品美女一区二区| 蜜臀av性久久久久蜜臀aⅴ| 色网站国产精品| 久久久777精品电影网影网 | 国产一区二区电影| 欧美日韩精品三区| 中文字幕字幕中文在线中不卡视频| 久久99久久99小草精品免视看| 欧美视频中文一区二区三区在线观看| 亚洲国产精品av| 精品一区二区三区在线观看国产| 欧美性极品少妇| 亚洲视频 欧洲视频| 国产老妇另类xxxxx| 欧美一级搡bbbb搡bbbb| 亚洲国产综合人成综合网站| 成人高清伦理免费影院在线观看| 久久综合九色综合97_久久久| 日韩专区中文字幕一区二区| 欧美在线视频全部完| 亚洲免费av高清| 99视频在线观看一区三区| 精品免费国产一区二区三区四区| 丝袜亚洲精品中文字幕一区| 日本大香伊一区二区三区| 国产精品久久久久精k8| 福利视频网站一区二区三区| 欧美大片一区二区| 另类欧美日韩国产在线| 日韩欧美一区二区不卡| 日日摸夜夜添夜夜添国产精品 | 91精品国产免费| 午夜精品久久久久久不卡8050| 日本伦理一区二区| 一区二区三区不卡视频在线观看| 99精品视频在线播放观看| 国产精品蜜臀av| eeuss鲁片一区二区三区在线观看| 国产精品水嫩水嫩| 不卡一区在线观看| 中文字幕在线一区二区三区| 成人av资源站| 亚洲男人的天堂av| 欧美色综合网站| 99re66热这里只有精品3直播| 中文字幕av在线一区二区三区| 成人深夜视频在线观看| 国产精品日日摸夜夜摸av| 波多野结衣精品在线| 国产精品久久久久影院亚瑟| 色综合视频一区二区三区高清| 一区二区三区日韩| 欧美日本乱大交xxxxx| 日本sm残虐另类| 精品黑人一区二区三区久久| 国产资源精品在线观看| 国产女同性恋一区二区| 91蜜桃婷婷狠狠久久综合9色| 亚洲综合一区二区精品导航| 欧美日韩精品欧美日韩精品一综合| 午夜久久久久久电影| 日韩欧美亚洲国产另类| 国产乱码精品一区二区三区忘忧草| 国产精品美女一区二区三区| 91国产成人在线| 六月婷婷色综合| 国产欧美精品一区aⅴ影院| 99精品在线观看视频| 午夜精品视频一区| 精品日产卡一卡二卡麻豆| 国产成人精品www牛牛影视| 亚洲欧美一区二区在线观看| 欧美日韩中文字幕一区| 另类小说图片综合网| 国产精品国产三级国产普通话99 | 色婷婷亚洲综合| 日本欧美大码aⅴ在线播放| 久久久亚洲国产美女国产盗摄| 99精品视频一区| 免费视频一区二区| 国产精品女上位| 欧美精品久久久久久久多人混战 | 久久久久国色av免费看影院| 一本大道av伊人久久综合| 蜜芽一区二区三区| 成人免费在线观看入口| 欧美一区二区三区小说| 久久国产精品色婷婷| 亚洲精品第1页| 久久这里只有精品6| 在线观看日韩精品| 国产精品综合二区| 亚洲成av人在线观看| 亚洲国产精品传媒在线观看| 欧美精品日韩一本| 国产精品一区二区三区乱码| 亚洲成人三级小说| 国产精品久久久久国产精品日日| 日韩欧美黄色影院| 在线观看视频欧美| 国产传媒欧美日韩成人| 日本一不卡视频| 亚洲精品乱码久久久久久久久| 欧美成人在线直播| 欧美日韩久久一区| 99这里只有久久精品视频| 美女www一区二区| 亚洲国产欧美日韩另类综合| 日本一区二区在线不卡| 日韩一区二区免费高清| 色系网站成人免费| 成人av网在线| 久国产精品韩国三级视频| 亚洲图片欧美色图| 亚洲图片激情小说| 日本一区二区高清| 欧美精品一区二区三区蜜臀| 91精品在线免费| 欧美羞羞免费网站| 91丨九色丨国产丨porny| 国产不卡视频在线播放| 天天操天天干天天综合网| 亚洲免费看黄网站| 国产精品久久影院| 国产精品免费人成网站| 久久免费视频色| 欧美精品一区二区三区在线| 日韩欧美一级二级| 精品日韩一区二区三区免费视频|