-
大小: 2.48MB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-09-29
- 語(yǔ)言: C/C++
- 標(biāo)簽: 操作系統(tǒng)??源代碼??課程設(shè)計(jì)??
資源簡(jiǎn)介
銀行家算法實(shí)現(xiàn),C++演示,帶有源代碼,有注釋

代碼片段和文件信息
#include??
#include??
#include??
#include?
#include?
#define?MM?10?//總進(jìn)程數(shù)的最大值
#define?NM?10?//總資源數(shù)的最大值?
#define?FALSE?0?
#define?TRUE?1?
int?MN;//總進(jìn)程數(shù),總資源數(shù)?
//M個(gè)進(jìn)程對(duì)N類資源最大資源需求量?
int?MAX[MM][NM];?
//系統(tǒng)可用資源數(shù)?
int?AVAILABLE[NM];?
//M個(gè)進(jìn)程已經(jīng)得到N類資源的資源量?
int?ALLOCATION[MM][NM]={0};?
//M個(gè)進(jìn)程還需要N類資源的資源量?
int?NEED[MM][NM];?
int?Request[NM]={0};?
char?flag=‘Y‘;?
//輸入數(shù)據(jù)
void?inputdata()
{
??int?ij;?
?printf(“請(qǐng)輸入進(jìn)程個(gè)數(shù)以及資源種類數(shù):\n“);
?scanf(“%d?%d“&M&N);
???????printf(“\n“);??
???????printf(“請(qǐng)輸入“);
?????????for?(j=0;j ??????????????printf(“%c“j+65);
???????printf(“類資源的可用資源的個(gè)數(shù):\n“);
????????for?(j=0;j {?scanf(“%d“?&AVAILABLE[j]);}
??????????????printf(“\n“);??
printf(“請(qǐng)輸入“);
????????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(“請(qǐng)輸入“);
for(i=0;i ?????????????printf(“P%d“i);
??????? printf(“分配“);
???for?(j=0;j ??????????????printf(“%c“j+65);
??????? printf(“類資源的個(gè)數(shù)分別為:\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];
?}
}
//顯示數(shù)據(jù)?
void?showdata()?
{??????int?ijk;?
???????inputdata();
cout<<“?資源情況?????Max???????????Allocation??????????Need????????Available“< printf(“?進(jìn)程“);
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)??//存儲(chǔ)數(shù)據(jù)
{?
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)???//檢驗(yàn)是否為安全序列
{?
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“)
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????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
評(píng)論
共有 條評(píng)論