




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力干線(xiàn)遷移施工方案
- 新中式瓦工施工方案
- 文官街地鐵施工方案
- TSHPA 0006-2024 學(xué)校有害生物綜合管理指南
- 2025年度跨境電商貸款擔(dān)保合同
- 二零二五年度餐飲管理輔導(dǎo)合同
- 二零二五年度柜臺(tái)品牌授權(quán)與推廣合同
- 茶樓茶藝師勞動(dòng)合同2025年度與勞動(dòng)合同簽訂流程
- 二零二五年度影視演員網(wǎng)絡(luò)直播聘用協(xié)議
- 二零二五年度個(gè)體店面轉(zhuǎn)讓與市場(chǎng)準(zhǔn)入條件協(xié)議
- 施工鋼板樁監(jiān)理細(xì)則
- 微電網(wǎng)-儲(chǔ)能電池catl pet80ah電芯規(guī)格書(shū)
- GB/T 4209-2022工業(yè)硅酸鈉
- 2023年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))試題庫(kù)含答案解析
- GB/T 39242-2020無(wú)損檢測(cè)超聲檢測(cè)靈敏度和范圍設(shè)定
- GB/T 32271-2015電梯能量回饋裝置
- GB/T 18775-2009電梯、自動(dòng)扶梯和自動(dòng)人行道維修規(guī)范
- GB/T 1.2-2020標(biāo)準(zhǔn)化工作導(dǎo)則第2部分:以ISO/IEC標(biāo)準(zhǔn)化文件為基礎(chǔ)的標(biāo)準(zhǔn)化文件起草規(guī)則
- 《社會(huì)歷史的決定性基礎(chǔ)》課件2 【知識(shí)建構(gòu)+備課精研】統(tǒng)編版高中語(yǔ)文選擇性必修中冊(cè)
- 消毒供應(yīng)中心火災(zāi)應(yīng)急預(yù)案演練記錄
- 幼兒園講課上呼吸道感染預(yù)防培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論