亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

銀行家算法

2024-06-28 13:27:37
字體:
來源:轉載
供稿:網友
銀行家算法

一、算法思想:在進程請求資源之前

1、實際資源檢測:

  Request < Need

  Request < Available

2、假分配檢測:

  假設進行分配,預測是否會產生死鎖。

3、程序結構:

 1 if(Request > Need[i])    error; 2 if(Request > Available)    sleep(); 3 //假設分配 4 Available -= Request; 5 Allocation[i] += Request; 6 Need[i] -=Request; 7 //檢測分配后是否死鎖 8 if(!isSafe()) { 9     //不分配,還原假設分配操作10 }else11     //分配

二、實例:參考這里

  假設系統中有A、B、C三種資源,P1~P5共5個進程,某時刻三種資源數量Available =(3,3,2)。其他狀態如下:

MAX(最多需要資源)Allocation(已分配資源)Need(還需資源)
P17  5  3  0  1  07  4  3
P23  2  22  0  01  2  2
P39  0  23  0  26  0  0
P42  2  22  1  1  0  1  1
P54  3  30  0  24  3  1

  某時刻P2發出請求向量Request =(1,0,2),根據銀行家算法:

    Request < Need (P2) 且 Request < Available;

  假設預分配給P2,則得到如下狀態:Available = (2,3,0)

MAX(最多需要資源)Allocation(已分配資源)Need(還需資源)
P17  5  3  0  1  07  4  3
P23  2  23  0  20  2  0
P39  0  23  0  26  0  0
P42  2  22  1  1  0  1  1
P54  3  30  0  24  3  1

  此時根據isSafy()判斷,先將Available分配給P2,P2執行結束后Available = (5,3,2);在分配給P4,執行結束后Available = (7,4,3);分配給P5,結束后Available = (7,4,5);分配給P1,結束后Available = (7,5,5);分配給P3,執行后Available = (10,5,7)。最后所有進程全部執行結束,不會死鎖,isSafy為真,可以分配。

三、銀行家算法C++實現:

 1 #include<iostream> 2 using namespace std; 3 int numR,numP,*Max,*Allocation,*Need,*Available,*Request; 4  5  6 void banker(int p); 7 int main(){ 8     Max = (int *)malloc(sizeof(int)*numR*numP); 9     Allocation = (int *)malloc(sizeof(int)*numR*numP);10     Need = (int *)malloc(sizeof(int)*numR*numP);11     Available = (int *)malloc(sizeof(int)*numR);12     Request = (int *)malloc(sizeof(int)*numR);13     cin>>numR>>numP;14     for(int i=0; i<numP; i++){15         for(int j=0; j<numR; j++){16             cin>>Max[i*numR + j];17         }18     }19     for(i=0; i<numP; i++){20         for(int j=0; j<numR; j++){21             cin>>Allocation[i*numR + j];22             Need[i*numR + j] = Max[i*numR + j] - Allocation[i*numR + j];23         }24     }25     for(i=0; i<numR; i++)26         cin>>Available[i];27     while(1){28         int p;29         cin>>p;30         for(int i=0; i<numR; i++){31             cin>>Request[i];32         }33         banker(p);34     }35 }36 bool compare(int *a,int *b){37     for(int i=0; i<numR; i++){38         if(a[i] < b[i]){39             return false;40         }41     }42     return true;43 }44 bool isSafy(){45     int *flags = (int *)malloc(sizeof(int)*numP);46     memset(flags,0,sizeof(int)*numP);47     int num=0;48     while(num<=numP){49         if(!flags[num]&&compare(Available, &Need[num*numR])){50             for(int i=0;i<numR;i++){51                 Available[i] +=Allocation[num*numR+i];52             }53             flags[num] = 1;54             num=0;55         }else{56             num++;57         }58     }59     for(int i=0; i<numP; i++){60         if(!flags[i])61             return false;62     }63     return true;    64 }65 void banker(int p){66     if(compare(Request,&Need[p*numR])){67         cout<<"Error!"<<endl;68         return;69     }70     if(compare(Request,Available)){71         cout<<"Block!"<<endl;72         return;73     }74     for(int i=0;i<numR;i++){75         Available[i] -=Request[i];76     }77     for(i=0;i<numR;i++){78         Need[i] -=Request[i];79     }80     for(i=0;i<numR;i++){81         Allocation[i] +=Request[i];82     }83     if(isSafy()){84         cout<<"可以分配!"<<endl;85         return ;86     }else{87         cout<<"產生死鎖!"<<endl;88         for(int i=0;i<numR;i++){89             Available[i] +=Request[i];90         }91         for(i=0;i<numR;i++){92             Need[i] +=Request[i];93         }94         for(i=0;i<numR;i++){95             Allocation[i] -=Request[i];96         }97     }98 }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91夜夜未满十八勿入爽爽影院| 91久久久久久久久久久| 亚洲综合中文字幕在线| 国语自产精品视频在线看| 亚洲福利在线看| 国产视频欧美视频| 欧美午夜影院在线视频| 少妇精69xxtheporn| 国产精品久久久一区| 亚洲成人网在线| 亚洲成人xxx| 国产精品视频99| 亚洲国产日韩欧美在线动漫| 亚洲精品视频中文字幕| 国产在线观看精品一区二区三区| 一区二区欧美激情| 日韩亚洲一区二区| 国内成人精品一区| 国外成人性视频| 欧美亚洲在线视频| 国产精品亚洲综合天堂夜夜| 亚洲大胆美女视频| 亚洲人成啪啪网站| 久久成人人人人精品欧| 久久夜精品va视频免费观看| 国产精国产精品| 欧美高清理论片| 久久久久久av| 国产视频精品一区二区三区| 日韩久久免费电影| 欧美理论电影在线观看| 亚洲欧洲免费视频| 国产成人精品视频在线观看| 国内精品久久久久久中文字幕| 国产精品久久久久影院日本| 亚洲一区二区三区四区视频| 日韩中文字幕网址| 97香蕉久久超级碰碰高清版| 亚洲免费av网址| 正在播放欧美视频| 日韩精品视频在线免费观看| 国产精品爽黄69天堂a| 久久精品免费电影| 久久网福利资源网站| 日韩成人高清在线| 另类图片亚洲另类| 一道本无吗dⅴd在线播放一区| 亚洲人高潮女人毛茸茸| 九九视频这里只有精品| 韩剧1988在线观看免费完整版| 欧美裸体男粗大视频在线观看| 欧美日韩亚洲一区二| 最新的欧美黄色| 国产丝袜一区视频在线观看| 精品久久久久久久久久| 国产视频在线一区二区| 亚洲国产成人久久综合一区| 日韩亚洲欧美中文高清在线| 色噜噜亚洲精品中文字幕| 久久视频精品在线| 国产日韩在线免费| 久久精品视频va| 国产精品视频自在线| 51久久精品夜色国产麻豆| 日韩黄色av网站| 午夜精品视频网站| 激情成人在线视频| 亚洲精品按摩视频| 国产精品自产拍在线观看中文| 91九色单男在线观看| 97成人精品视频在线观看| 国产亚洲一区二区在线| 色无极影院亚洲| 日韩精品中文字幕久久臀| 国产亚洲精品久久久久动| 亚洲偷熟乱区亚洲香蕉av| 亚洲国产精品小视频| 亚洲欧洲第一视频| 在线观看亚洲区| 国产精品成人va在线观看| 欧美精品性视频| 午夜欧美不卡精品aaaaa| 美女久久久久久久| 亚洲永久在线观看| 亚洲精品久久久久久下一站| 2019中文字幕全在线观看| 欧美日韩综合视频| 日韩电影中文字幕在线观看| 亚洲午夜未满十八勿入免费观看全集| 不卡在线观看电视剧完整版| 亚洲福利视频在线| 国产91精品黑色丝袜高跟鞋| 精品国产乱码久久久久久虫虫漫画| 97免费视频在线| 国产一区二区三区免费视频| 欧美电影免费播放| 亚洲精品一区二区久| 亚洲欧美日韩高清| 中文字幕欧美国内| 国产精品福利在线| 亚洲国产欧美一区二区三区久久| 亚洲bt天天射| 日本亚洲精品在线观看| 日韩最新中文字幕电影免费看| 中文字幕免费精品一区高清| 国产精品天天狠天天看| 久久免费精品日本久久中文字幕| 91久久精品国产| 97精品伊人久久久大香线蕉| 欧美一区二区色| 成人精品一区二区三区电影黑人| www国产亚洲精品久久网站| 91精品国产91久久久久久最新| 亚洲欧美在线免费观看| 日韩电影中文字幕在线观看| 国产精品亚洲第一区| 亚洲国产日韩精品在线| 深夜精品寂寞黄网站在线观看| 日韩在线不卡视频| 欧美精品手机在线| 国产精品情侣自拍| 中文字幕一区二区三区电影| 日本三级久久久| 中文字幕亚洲无线码在线一区| 午夜精品久久久久久99热| 欧美电影免费观看大全| 久久国产视频网站| www.亚洲人.com| 欧美高跟鞋交xxxxxhd| 国产成人精品一区二区| 亚洲精品91美女久久久久久久| 欧美成年人视频网站欧美| 欧美视频在线观看免费网址| 91人人爽人人爽人人精88v| 国产精品女人网站| 热99精品只有里视频精品| 国产精选久久久久久| 色噜噜国产精品视频一区二区| 日韩美女福利视频| 国产69精品久久久久9| 欧美大秀在线观看| 自拍亚洲一区欧美另类| 日韩av一区二区在线| 国产视频在线观看一区二区| 亚洲国产精品久久久久秋霞蜜臀| 亚洲欧美日韩一区二区三区在线| 欧美怡红院视频一区二区三区| 国产欧美日韩中文字幕| 久久精品国产一区二区三区| 色悠悠国产精品| 久久久久久成人| 亚洲欧洲在线看| 91成人在线视频| 欧美多人乱p欧美4p久久| 91精品视频一区| 国产精品视频区| 97香蕉久久夜色精品国产| 91精品国产综合久久香蕉922| 日韩在线一区二区三区免费视频| 欧美国产视频一区二区| 亲子乱一区二区三区电影| 国产精品国产亚洲伊人久久| 亚洲淫片在线视频| 亚洲欧洲日产国产网站|