資源簡介
利用C語言實現操作系統中的銀行家算法(話說說的這么清楚還需要多少描述嗎?額,我這個是老師親自驗收通過的!)
代碼片段和文件信息
#include?
using?namespace?std;
#define?maxprocess?30????????????????????????/*最大進程數*/
#define?maxresource?80????????????????????????/*最大資源數*/
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();
void?main()
{
????Init();
????Safe();
????Bank();
}
void?Init()????????????????/*初始化算法*/
{
????int?ij;
cout<<“**********************************銀行家算法**********************************“< ????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];
????}
}
void?Bank()????????????????/*銀行家算法*/
{
????int?icusneed;
????char?again;
????while(1)
????{
????????cout<<“請輸入要申請資源的進程號(請從0開始依次輸入)“< ????????cin>>cusneed;
????????cout<<“請輸入進程所請求的各資源的數量“< ????????for(i=0;i ????????{
????????????cin>>request[cusneed][i];
????????}
????????for(i=0;i ????????{
????????????if(request[cusneed][i]>need[cusneed][i])
????????????{
????????????????cout<<“您輸入的請求數超過進程的需求量!請重新輸入!“< ????????????????continue;
????????????}
????????????if(request[cusneed][i]>available[i])
????????????{
????????????????cout<<“您輸入的請求數超過系統有的資源數!請重新輸入!“< ???
- 上一篇:C++聊天室客戶端+服務端
- 下一篇:spath(A*算法的C語言源代碼)
評論
共有 條評論