




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、華僑大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 預(yù)防進(jìn)程死鎖的銀行家算法 學(xué)生姓名: 學(xué)生學(xué)號(hào): 專業(yè)班級(jí): 指導(dǎo)老師: 2013年6月20日1、 實(shí)驗(yàn)?zāi)康?通過(guò)這次實(shí)驗(yàn),加深對(duì)進(jìn)程死鎖的理解,進(jìn)一步掌握進(jìn)程資源的分配、死鎖的檢測(cè)和安全序列的生成方法。2、問(wèn)題描述:設(shè)計(jì)程序模擬預(yù)防進(jìn)程死鎖的銀行家算法的工作過(guò)程。假設(shè)系統(tǒng)中有n個(gè)進(jìn)程P1, ,Pn,有m類可分配的資源R1, ,Rm,在T0時(shí)刻,進(jìn)程Pi分配到的j類資源為Allocationij個(gè),它還需要j類資源Need ij個(gè),系統(tǒng)目前剩余j類資源Workj個(gè),現(xiàn)采用銀行家算法進(jìn)行進(jìn)程資源分配預(yù)防死鎖的發(fā)生。3、需求分析1 判斷當(dāng)前狀態(tài)是否安全,如果安全給出安
2、全序列;如果不安全給出理由。2 對(duì)于下一個(gè)時(shí)刻T1,某個(gè)進(jìn)程Pk會(huì)提出請(qǐng)求Request(R1, ,Rm),判斷分配給P k進(jìn)程請(qǐng)求的資源之后系統(tǒng)是否安全。3 輸入:進(jìn)程個(gè)數(shù)n,資源種類m,T0時(shí)刻各個(gè)進(jìn)程的資源分配情況(可以運(yùn)行輸入,也可以在程序中設(shè)置);4 輸出:如果安全,輸出安全的進(jìn)程序列,不安全則提示信息。4、 概要設(shè)計(jì)1)程序中進(jìn)程調(diào)度時(shí)間變量描述如下:5、 調(diào)試分析1、本次試驗(yàn)代碼里用到了大量的判斷語(yǔ)句,這時(shí)就要求對(duì)各種判斷條件以及循環(huán)結(jié)束的條件考慮周全,這樣才不至于讓程序出現(xiàn)無(wú)運(yùn)行結(jié)果的錯(cuò)誤。 2、銀行家算法里對(duì)于請(qǐng)求資源后的各個(gè)矩陣分布情況要放在全局里考慮,在此基礎(chǔ)上當(dāng)再次需要
3、分配資源時(shí)使得可分配資源已經(jīng)不是最初的值。6、用戶使用說(shuō)明用C+語(yǔ)言實(shí)現(xiàn)提示。調(diào)試運(yùn)行程序之前要熟悉變量輸入的順序,否則運(yùn)行結(jié)果會(huì)出現(xiàn)錯(cuò)誤。7、測(cè)試結(jié)果8、 存在問(wèn)題 剛開(kāi)始著手編寫程序的時(shí)候?qū)τ谒惴ㄔO(shè)計(jì)的思路不太對(duì),走了很多彎路,浪費(fèi)了很多時(shí)間。9、 心得體會(huì) 通過(guò)這次實(shí)驗(yàn),使我加深對(duì)進(jìn)程死鎖的理解,進(jìn)一步掌握進(jìn)程資源的分配、死鎖的檢測(cè)和安全序列的生成方法。剛開(kāi)始著手編寫程序的時(shí)候?qū)τ谒惴ㄔO(shè)計(jì)的思路不太對(duì),走了很多彎路,浪費(fèi)了很多時(shí)間,這也給我一個(gè)教訓(xùn),在著手編寫程序前要做充分的準(zhǔn)備,確保思路清晰。10、附錄程序源代碼:#include <iostream.h>#define M
4、axNum 100#define error 0#define ok 1int compare(int aMaxNum,int bMaxNum,int m)/數(shù)組比較大小int i, k=0;for(i=0;i<m;i+)if(ai<bi)k=1;break;if(k=0) return ok;elsereturn error;int safe_check(int AvailableMaxNum, int MaxMaxNumMaxNum, int AllocationMaxNumMaxNum, int NeedMaxNumMaxNum, int SafeOrderMaxNum,in
5、t n,int m)int workMaxNumMaxNum, needMaxNumMaxNum,allocationMaxNumMaxNum;bool finishMaxNum=false;int kindMaxNum=0;int s=0,P=0;int temp1MaxNum,temp2MaxNum;for(int i=0;i<m;i+)work0i=Availablei;while(s<n && P=0) int symbol =0; for( i=0;i<n;i+) for(int j=0;j<m;j+) temp1j=worksj; temp2
6、j=Needij; if(compare(temp1,temp2,m)=1 && kindi=0) symbol=1; break; if(symbol=1) SafeOrders=i; kindi=1; for(int j=0;j<m;j+) allocationsj=Allocationij; needsj=Needij; works+1j=worksj+allocationsj; finishs=true; s+; else cout<<1<<endl; P=1; if(P=1 && s<n)cout<<&q
7、uot;該狀態(tài)不安全,找不到安全序列"<<endl; return 0;elsecout<<"該狀態(tài)下安全,安全序列為:"<<endl;for(int v=0;v<n;v+)cout<<SafeOrderv<<" "return 1;void request_check(int AvailableMaxNum, int MaxMaxNumMaxNum, int AllocationMaxNumMaxNum, int NeedMaxNumMaxNum, int SafeOrderM
8、axNum,int n,int m,int p,int RequestMaxNum)int temp3MaxNum;for(int i=0;i<m;i+)temp3i=Needpi;if(compare(temp3,Request,m)=1 && compare(Available,Request,m)=1 )for(i=0;i<m;i+)Availablei=Availablei-Requesti; Allocationpi=Allocationpi+Requesti;Needpi=Needpi-Requesti; if( safe_check( Availabl
9、e, Max, Allocation, Need, SafeOrder, n, m)=1)cout<<"系統(tǒng)是安全的,可以立即將"<<p<<"進(jìn)程所申請(qǐng)的資源分配給它!"<<endl;elsefor(i=0;i<m;i+) Availablei=Availablei+Requesti; Allocationpi=Allocationpi-Requesti;Needpi=Needpi+Requesti; elsecout<<"進(jìn)程申請(qǐng)的資源超出該進(jìn)程所需資源或者超出現(xiàn)有資源!讓進(jìn)程
10、"<<p<<"等待"<<endl;void output(int aMaxNumMaxNum,int n,int e)for(int i=0;i<n;i+)cout<<aei<<" "void main ()cout<<"*"<<endl; cout<<"* 預(yù)防進(jìn)程死鎖的銀行家算法 張迪 1025116022 *"<<endl; cout<<"*"<&l
11、t;endl; int AvailableMaxNum;int MaxMaxNumMaxNum;int AllocationMaxNumMaxNum;int NeedMaxNumMaxNum;int RequestMaxNum;int SafeOrderMaxNum;int n,m,p;int i,j;cout<<"請(qǐng)輸入進(jìn)程數(shù):"cin>>n;cout<<"請(qǐng)輸入資源數(shù):"cin>>m;for(i=0;i<n;i+) /賦值cout<<"請(qǐng)輸入進(jìn)程"<<i
12、;for(j=0;j<m;j+) cout<<"資源"<<j<<"的各項(xiàng)分配情況"<<endl;cin>>Maxij;cin>>Allocationij; cin>>Needij;cout<<"請(qǐng)輸入Available:"<<endl;for(i=0;i<m;i+)cin>>Availablei;cout<<"請(qǐng)求資源進(jìn)程為:"cin>>p;cout<&l
13、t;"請(qǐng)求資源為:"for(i=0;i<m;i+)cin>>Requesti; for(i=0;i<n;i+)cout<<"進(jìn)程"<<i<<endl;cout<<"Max: "output(Max,m,i); cout<<"Allocation: "output(Allocation,m,i);cout<<"Need: "output(Need,m,i); cout<<endl;cout&
14、lt;<"Available: " for(i=0;i<m;i+) cout<<Availablei<<" " cout<<endl; safe_check( Available, Max, Allocation, Need, SafeOrder, n, m); cout<<"*"<<endl; cout<<"申請(qǐng)資源后"<<endl; request_check(Available, Max,Allocation, Need, SafeOrder,n, m, p, Request); cout<<"*"<<endl; int choice=0; while(choice=0) cout<<"請(qǐng)求資源進(jìn)程為:" cin>>p; cout<<"請(qǐng)求資源為:" for(i=0;i<m;i+) cin>>Req
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 戰(zhàn)略合作的尋求與維護(hù)計(jì)劃
- 城市交通可持續(xù)發(fā)展規(guī)劃師重點(diǎn)基礎(chǔ)知識(shí)點(diǎn)
- 法學(xué)概論知識(shí)點(diǎn)學(xué)習(xí)中的難點(diǎn)與突破試題及答案
- 2024年山東財(cái)經(jīng)大學(xué)輔導(dǎo)員考試真題
- 2024年湖北省醫(yī)療保障局下屬事業(yè)單位真題
- 陜西省山陽(yáng)縣2025屆七年級(jí)數(shù)學(xué)第二學(xué)期期末統(tǒng)考試題含解析
- 2024年海南省外事辦公室下屬事業(yè)單位真題
- 2024年貴州省應(yīng)急管理廳下屬事業(yè)單位真題
- 2024年安徽省生態(tài)環(huán)境廳下屬事業(yè)單位真題
- 2024年防城港市園林管理處招聘筆試真題
- 收養(yǎng)孩子回訪報(bào)告范文
- 2025年高二物理學(xué)考重點(diǎn)知識(shí)點(diǎn)公式歸納總結(jié)(復(fù)習(xí)必背)
- 夢(mèng)中的婚禮鋼琴簡(jiǎn)譜曲譜
- 文化產(chǎn)品創(chuàng)意與策劃-終結(jié)性考核-國(guó)開(kāi)(SC)-參考資料
- 《駱駝祥子》中“虎妞”形象分析6200字(論文)
- 《質(zhì)量管理體系國(guó)家注冊(cè)審核員預(yù)備知識(shí)培訓(xùn)教程》
- 2024年5月26日河南省事業(yè)單位聯(lián)考《公共基礎(chǔ)知識(shí)》試題
- 兒歌大全100首歌詞
- 糧油食材配送投標(biāo)方案(大米食用油食材配送服務(wù)投標(biāo)方案)(技術(shù)方案)
- 個(gè)人獨(dú)資企業(yè)(合伙企業(yè))轉(zhuǎn)型有限責(zé)任公司登記申請(qǐng)書
- 2023年湖南省普通高等學(xué)校對(duì)口招生考試機(jī)電類專業(yè)綜合知識(shí)試題附答題卡
評(píng)論
0/150
提交評(píng)論