操作系統(tǒng)實(shí)驗(yàn)三-銀行家算法_第1頁(yè)
操作系統(tǒng)實(shí)驗(yàn)三-銀行家算法_第2頁(yè)
操作系統(tǒng)實(shí)驗(yàn)三-銀行家算法_第3頁(yè)
操作系統(tǒng)實(shí)驗(yàn)三-銀行家算法_第4頁(yè)
操作系統(tǒng)實(shí)驗(yàn)三-銀行家算法_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、廣東海洋大學(xué)學(xué)生實(shí)驗(yàn)報(bào)告書(shū)(學(xué)生用表)實(shí)驗(yàn)名稱(chēng)實(shí)驗(yàn)三 死鎖的避免(銀行家算法)課程名稱(chēng)計(jì)算機(jī)操作系統(tǒng)課程號(hào)學(xué)院(系)專(zhuān)業(yè)班級(jí)學(xué)生姓名學(xué)號(hào)實(shí)驗(yàn)地點(diǎn)實(shí)驗(yàn)日期實(shí)驗(yàn)三 死鎖的避免銀行家算法一、 實(shí)驗(yàn)?zāi)康? 掌握死鎖產(chǎn)生的原因。2 掌握銀行家算法。3 能使用高級(jí)語(yǔ)言模擬實(shí)現(xiàn)銀行家算法。二、 相關(guān)知識(shí)介紹參與死鎖的進(jìn)程最少是兩個(gè)。參與死鎖的進(jìn)程至少有兩個(gè)已經(jīng)占有資源。參與死鎖的所有進(jìn)程都在等待資源。參與死鎖的進(jìn)程是當(dāng)前系統(tǒng)中所有進(jìn)程的子集。三、 相關(guān)數(shù)據(jù)結(jié)構(gòu)1 可利用資源向量Available ,它是一個(gè)含有m個(gè)元素的數(shù)組,其中的每一個(gè)元素代表一類(lèi)可利用的資源的數(shù)目,其初始值是系統(tǒng)中所配置的該類(lèi)全部可用資

2、源數(shù)目。其數(shù)值隨該類(lèi)資源的分配和回收而動(dòng)態(tài)地改變。如果Availablej=k,標(biāo)是系統(tǒng)中現(xiàn)有j類(lèi)資源k個(gè)。2 最大需求矩陣Max,這是一個(gè)n×m的矩陣,它定義了系統(tǒng)中n個(gè)進(jìn)程中的每一個(gè)進(jìn)程對(duì)m類(lèi)資源的最大需求。如果Maxij=k,表示進(jìn)程i需要j類(lèi)資源的最大數(shù)目為k。3 分配矩陣Allocation,這是一個(gè)n×m的矩陣,它定義了系統(tǒng)中的每類(lèi)資源當(dāng)前分配到每一個(gè)進(jìn)程的資源數(shù)。如果Allocationij=k,表示進(jìn)程i當(dāng)前已經(jīng)分到j(luò)類(lèi)資源的數(shù)目為k個(gè)。Allocationi表示進(jìn)程i的分配向量。4 需求矩陣Need,這是一個(gè)n×m的矩陣,用以表示每個(gè)進(jìn)程還需要的

3、各類(lèi)資源的數(shù)目。如果Needij=k,表示進(jìn)程i還需要j類(lèi)資源k個(gè),才能完成其任務(wù)。Needi表示進(jìn)程i的需求向量。 上述三個(gè)矩陣間存在關(guān)系:Needij=Maxij-Allocationij;四、 銀行家算法Request是進(jìn)程i的請(qǐng)求向量。Requestj=k表示進(jìn)程i請(qǐng)求分配j類(lèi)資源k個(gè)。當(dāng)進(jìn)程i發(fā)出資源請(qǐng)求后,系統(tǒng)按下述步驟進(jìn)行檢查:1 如果Request Needi,則轉(zhuǎn)向步驟2;否則,認(rèn)為出錯(cuò),因?yàn)樗?qǐng)求的資源數(shù)已超過(guò)它當(dāng)前的最大需求量。2 如果Request Available,則轉(zhuǎn)向步驟3;否則,表示系統(tǒng)中尚無(wú)足夠的資源滿(mǎn)足進(jìn)程i的申請(qǐng),進(jìn)程i必須等待。3 系統(tǒng)試探性地把資源

4、分配給進(jìn)程i,并修改下面數(shù)據(jù)結(jié)構(gòu)中的數(shù)值:Available = Available - Request Allocationi= Allocationi+ RequestNeedi= Needi - Request 4 系統(tǒng)執(zhí)行安全性算法,檢查此次資源分配后,系統(tǒng)是否處于安全狀態(tài)。如果安全才正式將資源分配給進(jìn)程i,以完成本次分配;否則,將試探分配作廢,恢復(fù)原來(lái)的資源分配狀態(tài),讓進(jìn)程i等待。五、 安全性算法1 設(shè)置兩個(gè)向量。Work:它表示系統(tǒng)可提供給進(jìn)程繼續(xù)運(yùn)行的各類(lèi)資源數(shù)目,它包含m個(gè)元素,開(kāi)始執(zhí)行安全性算法時(shí),Work = Available。Finish:它表示系統(tǒng)是否有足夠的資源分配

5、給進(jìn)程,使之運(yùn)行完成,開(kāi)始Finishi=false;當(dāng)有足夠資源分配給進(jìn)程i時(shí),令Finishi=true;2 從進(jìn)程集合中找到一個(gè)能滿(mǎn)足下述條件的進(jìn)程。Finishi= = false;Neediwork;如找到則執(zhí)行步驟3;否則,執(zhí)行步驟4;3 當(dāng)進(jìn)程i獲得資源后,可順利執(zhí)行直到完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行Work = work + AllocationiFinishi=true;轉(zhuǎn)向步驟2;4 若所有進(jìn)程的Finishi都為true,則表示系統(tǒng)處于安全狀態(tài);否則,系統(tǒng)處于不安全狀態(tài)。六、 實(shí)驗(yàn)內(nèi)容設(shè)計(jì)有n個(gè)進(jìn)程共享m個(gè)系統(tǒng)資源的系統(tǒng),進(jìn)程可動(dòng)態(tài)的申請(qǐng)和釋放資源,系統(tǒng)按各進(jìn)程的

6、申請(qǐng)動(dòng)態(tài)的分配資源。系統(tǒng)能顯示各個(gè)進(jìn)程申請(qǐng)和釋放資源,以及系統(tǒng)動(dòng)態(tài)分配資源的過(guò)程,便于用戶(hù)觀察和分析。程序框架已經(jīng)給出,要求將安全性算法補(bǔ)充完整。/*/* 實(shí)驗(yàn)三 死鎖的避免銀行家算法 */* */*本程序需要預(yù)先設(shè)置三個(gè)文件:Available_list.txt,Max_list.txt,Allocation_list.txt */* 各文件格式如下: */* Available_list.txt */* 3 /表示共有3類(lèi)資源 */* 10 5 7 /表示各類(lèi)資源的初始可用個(gè)數(shù),即Available0=10, Available1=5 */* */* */* Max_list.txt */

7、* 5 /表示共有5個(gè)進(jìn)程 */* 7 5 3 /表示各個(gè)進(jìn)程需要各類(lèi)資源的最大數(shù)目,即Max00=7, Max01=5*/* 3 2 2 */* 9 0 2 */* 2 2 2 */* 4 3 3 */* */* */* Allocation_list.txt */* 0 1 0 /表示各個(gè)進(jìn)程已分配各類(lèi)資源的數(shù)目 */* 2 0 0 */* 3 0 2 */* 2 1 1 */* 0 0 2 */* */* */*/#include <iostream.h>#include <stdio.h>#include <windows.h>#define MAX

8、_PROCESS 32 /最大進(jìn)程數(shù)#define MAX_RESOURCE 64 /最大資源類(lèi)別int PROCESS_NUM; /實(shí)際總進(jìn)程數(shù)int RESOURCE_NUM; /實(shí)際資源類(lèi)別數(shù)int AvailableMAX_RESOURCE; /可利用資源向量int MaxMAX_PROCESSMAX_RESOURCE; /最大需求矩陣int AllocationMAX_PROCESSMAX_RESOURCE; /分配矩陣int NeedMAX_PROCESSMAX_RESOURCE; /需求矩陣int Request_PROCESS; /發(fā)出請(qǐng)求的進(jìn)程int Request_RESO

9、URCE_NEMBERMAX_RESOURCE; /請(qǐng)求資源數(shù)void Read_Available_list(); /讀入可用資源Availablevoid Read_Max_list(); /讀入最大需求矩陣Maxvoid Read_Allocation_list(); /讀入已分配矩陣Allocationvoid PrintInfo(); /打印各數(shù)據(jù)結(jié)構(gòu)信息void Read_Request();/輸入請(qǐng)求向量void Allocate_Source(); /開(kāi)始正式分配資源(修改Allocation_list.txt)void Recover_TryAllocate(); /恢復(fù)試分

10、配前狀態(tài)int Test_Safty(); /安全性檢測(cè)void RunBanker(); /執(zhí)行銀行家算法/讀入可用資源Availablevoid Read_Available_list() FILE *fp;if(fp=fopen("Available_list.txt","r")=NULL) cout<<"錯(cuò)誤,文件打不開(kāi),請(qǐng)檢查文件名"<<endl; exit(0);fscanf(fp,"%d",&RESOURCE_NUM);int i=0;while(!feof(fp)fs

11、canf(fp,"%d",&Availablei);i+;fclose(fp);/讀入最大需求矩陣Maxvoid Read_Max_list() FILE *fp;if(fp=fopen("Max_list.txt","r")=NULL) cout<<"錯(cuò)誤,文件打不開(kāi),請(qǐng)檢查文件名"<<endl; exit(0);fscanf(fp,"%d",&PROCESS_NUM);for(int i=0;i<PROCESS_NUM;i+)for(int j=

12、0;j<RESOURCE_NUM;j+)fscanf(fp,"%d",&Maxij);fclose(fp);/讀入已分配矩陣Allocationvoid Read_Allocation_list() FILE *fp;if(fp=fopen("Allocation_list.txt","r")=NULL) cout<<"錯(cuò)誤,文件打不開(kāi),請(qǐng)檢查文件名"<<endl; exit(0);for(int i=0;i<PROCESS_NUM;i+)for(int j=0;j<

13、;RESOURCE_NUM;j+)fscanf(fp,"%d",&Allocationij);fclose(fp);/設(shè)置需求矩陣Needvoid Set_Need_Available() for(int i=0;i<PROCESS_NUM;i+)for(int j=0;j<RESOURCE_NUM;j+)Needij=Maxij-Allocationij;Availablej=Availablej-Allocationij;/打印各數(shù)據(jù)結(jié)構(gòu)信息void PrintInfo()cout<<"進(jìn)程個(gè)數(shù): "<<P

14、ROCESS_NUM<<"t"<<"資源個(gè)數(shù): "<<RESOURCE_NUM<<endl;cout<<"可用資源向量Available:"<<endl;int i,j;for(i=0;i<RESOURCE_NUM;i+)cout<<Availablei<<"t"cout<<endl;cout<<"最大需求矩陣Max:"<<endl;for(i=0;i<

15、PROCESS_NUM;i+)for(j=0;j<RESOURCE_NUM;j+)cout<<Maxij<<"t"cout<<endl;cout<<"已分配矩陣Allocation:"<<endl;for(i=0;i<PROCESS_NUM;i+)for(j=0;j<RESOURCE_NUM;j+)cout<<Allocationij<<"t"cout<<endl;cout<<"需求矩陣Need:&q

16、uot;<<endl;for(i=0;i<PROCESS_NUM;i+)for(j=0;j<RESOURCE_NUM;j+)cout<<Needij<<"t"cout<<endl;/輸入請(qǐng)求向量void Read_Request() cout<<"輸入發(fā)起請(qǐng)求的進(jìn)程(0"<<PROCESS_NUM-1<<"):"cin>>Request_PROCESS;cout<<"輸入請(qǐng)求資源的數(shù)目:按照這樣的格式輸入

17、x x x:"for(int i=0; i<RESOURCE_NUM; i+)cin>>Request_RESOURCE_NEMBERi;/開(kāi)始正式分配資源(修改Allocation_list.txt)void Allocate_Source() cout<<'n'<<"開(kāi)始給第"<<Request_PROCESS<<"個(gè)進(jìn)程分配資源."<<endl;FILE *fp;if(fp=fopen("Allocation_list.txt"

18、;,"w")=NULL) cout<<"錯(cuò)誤,文件打不開(kāi),請(qǐng)檢查文件名"<<endl; exit(0);for(int i=0;i<PROCESS_NUM;i+)for(int j=0;j<RESOURCE_NUM;j+)fprintf(fp,"%d ",Allocationij);fprintf(fp,"n");cout<<"分配完成,已更新Allocation_list.txt"<<endl;fclose(fp);/恢復(fù)試分配前狀態(tài)

19、void Recover_TryAllocate()for(int i=0;i<RESOURCE_NUM;i+)Availablei=Availablei+Request_RESOURCE_NEMBERi;AllocationRequest_PROCESSi=AllocationRequest_PROCESSi-Request_RESOURCE_NEMBERi; NeedRequest_PROCESSi=NeedRequest_PROCESSi+Request_RESOURCE_NEMBERi;/安全性檢測(cè)/返回值:0:未通過(guò)安全性測(cè)試; 1:通過(guò)安全性測(cè)試int Test_Safty(

20、) /請(qǐng)完成安全性檢測(cè)算法的編程void RunBanker() /執(zhí)行銀行家算法cout<<endl;cout<<"開(kāi)始執(zhí)行銀行家算法."<<endl;for(int i=0;i<RESOURCE_NUM;i+) /檢查是否滿(mǎn)足條件Request<=Needif(Request_RESOURCE_NEMBERi>NeedRequest_PROCESSi)cout<<"n第"<<Request_PROCESS<<"個(gè)進(jìn)程請(qǐng)求資源不成功"<&

21、lt;endl;cout<<"原因:超出該進(jìn)程尚需的資源的最大數(shù)量!"<<endl;return;for(i=0;i<RESOURCE_NUM;i+) /檢查是否滿(mǎn)足條件Request<=Availableif(Request_RESOURCE_NEMBERi>Availablei)cout<<"n第"<<Request_PROCESS<<"個(gè)進(jìn)程請(qǐng)求資源不成功"<<endl;cout<<"原因:系統(tǒng)中無(wú)足夠的資源!&quo

22、t;<<endl;return;else/試分配,更新各相關(guān)數(shù)據(jù)結(jié)構(gòu)Availablei=Availablei-Request_RESOURCE_NEMBERi; AllocationRequest_PROCESSi=AllocationRequest_PROCESSi+Request_RESOURCE_NEMBERi; NeedRequest_PROCESSi=NeedRequest_PROCESSi-Request_RESOURCE_NEMBERi;cout<<endl<<"試分配完成."<<endl;if(Test_Sa

23、fty() /使用安全性算法檢查,若滿(mǎn)足,則正式分配Allocate_Source();else /否則恢復(fù)試分配前狀態(tài)Recover_TryAllocate(); void main()char c;Read_Available_list();Read_Max_list();Read_Allocation_list();Set_Need_Available();PrintInfo();while(1)Read_Request();RunBanker();cout<<"nn需要繼續(xù)嗎?(y-繼續(xù);n-終止)"cin>>c;if(c='n

24、9;)break;cout<<endl<<endl;PrintInfo();實(shí)驗(yàn)的時(shí)候題目給出的資源介紹:MaxAllocationNeedAvailableABCABCABCA 3B 3C 2P0753010743P1322200122P2902302600P3222211011P4433002431實(shí)驗(yàn)進(jìn)行中:以后就是我給實(shí)驗(yàn)代碼缺失的部分補(bǔ)充的代碼:(參考了很多文獻(xiàn)書(shū)籍,看懂了也算是收獲。)Work=Available;所有Finishi=false;while(還有未放入安全序列的進(jìn)程)if (找到滿(mǎn)足Finishi=false&&Needi&l

25、t;=Work的進(jìn)程i)Work=Work+Allocationi;Finshi=true;If(遍歷一遍,找不到滿(mǎn)足條件的進(jìn)程)break;if(所有Finishi=true)返回“安全”;else返回“不安全”;實(shí)驗(yàn)過(guò)程:網(wǎng)絡(luò)上的其它參考答案:(看懂了也算是收獲吧)#include<iostream.h>#include<fstream.h>#include<stdlib.h>#include "windows.h"#define MAX_PROCESS 32 /最大進(jìn)程數(shù)#define MAX_COURCE 64 /最大資源類(lèi)別in

26、t MAX_FACT_PROCESS; /實(shí)際總進(jìn)程數(shù)int MAX_FACT_COURCE; /實(shí)際資源類(lèi)別數(shù)int AvailableMAX_COURCE; /可利用資源向量int MaxMAX_PROCESSMAX_COURCE; /最大需求矩陣int AllocationMAX_PROCESSMAX_COURCE; /分配矩陣int NeedMAX_PROCESSMAX_COURCE; /需求矩陣int Request_PROCESS; /發(fā)出請(qǐng)求的進(jìn)程int Request_COURCE; /被請(qǐng)求資源類(lèi)別int Request_COURCE_NEMBER; /請(qǐng)求資源數(shù)struct

27、 COMPint value;int num;int next;int flag=0;void Read_Initiate(void) /讀入初始化文檔ifstream infile("Initiate.txt"); if(!infile)cout<<"不能打開(kāi)輸入文件:"<<"Initiate.txt"<<'n'exit(1);cout<<"開(kāi)始讀入初始化文檔"<<'n'int ch;int ArrayMAX_PROCES

28、S*MAX_COURCE*2;int num=0;while(infile>>ch) Arraynum+=ch;num=0; MAX_FACT_COURCE=Arraynum+; for(int j=0;j<MAX_FACT_COURCE;j+)Availablej=Arraynum+; MAX_FACT_PROCESS=Arraynum+;for(int i=0;i<MAX_FACT_PROCESS;i+)for(int j=0;j<MAX_FACT_COURCE;j+)Maxj=Arraynum+;infile.close();void Write_Initi

29、ate(void) /寫(xiě)入初始化文檔(分配資源ofstream outfile("Initiate.txt");if(!outfile)cout<<"不能打開(kāi)初始化文檔:"<<'n'exit(1);int ArrayMAX_PROCESS*MAX_COURCE*2;int num=0;Arraynum+=MAX_FACT_COURCE; for(int i=0;i<MAX_FACT_COURCE;i+)Arraynum+=Available;Arraynum+=MAX_FACT_PROCESS;for(i=0

30、;i<MAX_FACT_PROCESS;i+)for(int j=0;j<MAX_FACT_COURCE;j+)Arraynum+=Maxj;num=0;outfile<<Arraynum+<<" "for(i=0;i<MAX_FACT_COURCE;i+)outfile<<Arraynum+<<" "outfile<<'n'<<Arraynum+<<endl;for(i=0;i<MAX_FACT_PROCESS;i+)for(in

31、t j=0;j<MAX_FACT_COURCE;j+)outfile<<Arraynum+<<" "outfile<<endl;DWORD m_delay=3000;Sleep(m_delay);outfile.close();cout<<"修改初始化文檔成功!"<<endl;void Allocated_list(void) /讀入已分配資源列表ifstream infile("Allocated_list.txt"); if(!infile)cout<<

32、"不能打開(kāi)輸入文件:"<<"Allocated_list.txt"<<'n'exit(1);cout<<"開(kāi)始讀入已分配資源列表"<<'n'int ch,num=0;int ArrayMAX_PROCESS*MAX_COURCE;while(infile>>ch)Arraynum+=ch;num=0;for(int i=0;i<MAX_FACT_PROCESS;i+)for(int j=0;j<MAX_FACT_COURCE;j+)

33、Allocationj=Arraynum+;infile.close(); void Set_Need(void) /設(shè)置需求矩陣cout<<"設(shè)置需求矩陣"<<'n'for(int i=0;i<MAX_FACT_PROCESS;i+)for(int j=0;j<MAX_FACT_COURCE;j+)Needj=Maxj-Allocationj;void Read_Request(void) /讀入請(qǐng)求向量ifstream infile("Request_list.txt"); if(!infile)c

34、out<<"不能打開(kāi)輸入文件:"<<"Request_list.txt"<<'n'exit(1); cout<<"開(kāi)始讀入請(qǐng)求向量"<<'n'int Array3;int num=0,ch;while(infile>>ch) Arraynum+=ch; Request_PROCESS=Array0; Request_COURCE=Array1; Request_COURCE_NEMBER=Array2;infile.close();

35、void Write_Allocation(void) /修改資源分配列表(資源分配)ofstream outfile("Allocated_list.txt");if(!outfile)cout<<"不能打開(kāi)資源分配列表:"<<'n'exit(1);for(int i=0;i<MAX_FACT_PROCESS;i+)for(int j=0;j<MAX_FACT_COURCE;j+)outfile<<Allocationj<<" "outfile<<

36、;endl; DWORD m_delay=3000;Sleep(m_delay);cout<<"修改資源分配列表成功!"<<endl;outfile.close();void Allocate_Source(void) /開(kāi)始分配(已通過(guò)掃描和安全性檢測(cè))cout<<'n'<<"開(kāi)始給第"<<Request_PROCESS<<"個(gè)進(jìn)程分配第"<<Request_COURCE<<"類(lèi)資源"<<R

37、equest_COURCE_NEMBER<<"個(gè)"<<endl;Write_Initiate();Write_Allocation();DWORD m_delay=3000;Sleep(m_delay);cout<<'n'<<"祝賀您,資源分配已成功!"<<endl; void Test_Safty() /安全性檢測(cè)cout<<'n'<<"進(jìn)入安全性檢測(cè)!"<<endl; int WorkMAX_COURCE

38、;for(int i=0;i<MAX_FACT_COURCE;i+)Work=Available; bool FinishMAX_PROCESSMAX_COURCE;for(i=0;i<MAX_FACT_PROCESS;i+)for(int j=0;j<MAX_FACT_COURCE;j+)Finishj=false;COMP Array32;for(i=0;i<MAX_FACT_PROCESS;i+)Array.value=NeedRequest_COURCE-1; Array.num=i;for(i=0;i<MAX_FACT_PROCESS;i+)for(in

39、t j=i+1;j<MAX_FACT_PROCESS;j+)if(Array.value>=Arrayj.value)int t;t=Arrayj.value; Arrayj.value=Array.value;Array.value=t;t=Arrayj.num; Arrayj.num=Array.num; Array.num=t;else continue;DWORD m_delay=3000;Sleep(m_delay);/*for(i=0;i<MAX_FACT_PROCESS;i+)for(int j=0;j<MAX_FACT_COURCE;j+)cout<

40、;<Needj<<'t'cout<<endl;*/if(FinishRequest_PROCESS-1Request_COURCE-1=false&&NeedRequest_PROCESS-1Request_COURCE-1<=WorkRequest_COURCE-1)WorkRequest_COURCE-1=WorkRequest_COURCE-1+AllocationRequest_PROCESS-1Request_COURCE-1; FinishRequest_PROCESS-1Request_COURCE-1=true

41、;elsecout<<"未通過(guò)安全性測(cè)試,不與以分配"<<endl;exit(0); for(i=0;i<MAX_FACT_PROCESS;i+)if(Array.num=Request_PROCESS-1)continue;if(Array.num!=Request_PROCESS-1&&FinishArray.numRequest_COURCE-1=false&&NeedArray.numRequest_COURCE-1<=WorkRequest_COURCE-1)WorkRequest_COURCE-

42、1=WorkRequest_COURCE-1+AllocationArray.numRequest_COURCE-1; FinishArray.numRequest_COURCE-1=true; for(i=0;i<MAX_FACT_PROCESS;i+)if(FinishRequest_COURCE-1=true)continue;elsecout<<"未通過(guò)安全性測(cè)試,不與以分配"<<endl; exit(0);cout<<'n'<<"找到一個(gè)安全序列:"<<"

43、;P"<<Request_PROCESS<<"->" for(i=0;i<MAX_FACT_PROCESS;i+)if(Array.num=Request_PROCESS)continue;elsecout<<"P"<<Array.num<<"->"cout<<'n'<<"已通過(guò)安全性測(cè)試!"<<endl;Allocate_Source(); void RUN(void) /執(zhí)

44、行銀行家算法 cout<<"*"<<'n'<<"點(diǎn)擊1執(zhí)行!"<<'n'<<"點(diǎn)擊2退出!"<<'n'<<"*"<<endl;cin>>flag;if(flag=2)exit(0);if(flag=1)cout<<"開(kāi)始掃描請(qǐng)求信息!"<<endl;DWORD m_delay=3000;Sleep(m_delay);i

45、f(Request_COURCE_NEMBER>NeedRequest_PROCESS-1Request_COURCE-1)cout<<'n'<<"第"<<Request_PROCESS<<"個(gè)進(jìn)程請(qǐng)求第"<<Request_COURCE<<"類(lèi)資源"<<Request_COURCE_NEMBER<<"個(gè)"<<endl; cout<<"可是已超出該進(jìn)程尚需的該類(lèi)資源

46、的最大數(shù)量,所以不予以分配!"<<endl;exit(0);if(Request_COURCE_NEMBER>AvailableRequest_COURCE-1)cout<<'n'<<"第"<<Request_PROCESS<<"個(gè)進(jìn)程請(qǐng)求第"<<Request_COURCE<<"類(lèi)資源"<<Request_COURCE_NEMBER<<"個(gè)"<<endl; cout<<"可是系統(tǒng)中尚無(wú)足夠的資源,所以進(jìn)入等待隊(duì)列!"<<endl;exit

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論