版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
銀行家算法模擬班級(jí)軟件二班學(xué)號(hào)11270235姓名梁書(shū)敏一、實(shí)驗(yàn)?zāi)康模?)進(jìn)一步理解利用銀行家算法避免死鎖的問(wèn)題;(2)在了解和掌握銀行家算法的基礎(chǔ)上,編制銀行家算法通用程序,將調(diào)試結(jié)果顯示在計(jì)算機(jī)屏幕上,再檢測(cè)和筆算的一致性。(3)理解和掌握安全序列、安全性算法加內(nèi)容二、實(shí)驗(yàn)內(nèi)容(1)了解和理解死鎖;(2)理解利用銀行家算法避免死鎖的原理;(3)會(huì)使用某種編程語(yǔ)言。三、實(shí)驗(yàn)原理(一)安全狀態(tài)指系統(tǒng)能按照某種順序如<P1,P2,…,Pn>(稱(chēng)為<P1,P2,…,Pn>序列為安全序列),為每個(gè)進(jìn)程分配所需的資源,直至最大需求,使得每個(gè)進(jìn)程都能順利完成。(二)銀行家算法假設(shè)在進(jìn)程并發(fā)執(zhí)行時(shí)進(jìn)程i提出請(qǐng)求j類(lèi)資源k個(gè)后,表示為Requesti[j]=k。系統(tǒng)按下述步驟進(jìn)行安全檢查:(1)如果Requesti≤Needi則繼續(xù)以下檢查,否則顯示需求申請(qǐng)超出最大需求值的錯(cuò)誤。(2)如果Requesti≤Available則繼續(xù)以下檢查,否則顯示系統(tǒng)無(wú)足夠資源,Pi阻塞等待。(3)系統(tǒng)試探著把資源分配給進(jìn)程Pi,并修改下面數(shù)據(jù)結(jié)構(gòu)中的數(shù)值:Available[j]∶=Available[j]-Requesti[j];Allocation[i,j]∶=Allocation[i,j]+Requesti[j];Need[i,j]∶=Need[i,j]-Requesti[j];(4)系統(tǒng)執(zhí)行安全性算法,檢查此次資源分配后,系統(tǒng)是否處于安全狀態(tài)。若安全,才正式將資源分配給進(jìn)程Pi,以完成本次分配;否則,將本次的試探分配作廢,恢復(fù)原來(lái)的資源分配狀態(tài),讓進(jìn)程Pi等待。(三)安全性算法(1)設(shè)置兩個(gè)向量:①工作向量Work:它表示系統(tǒng)可提供給進(jìn)程繼續(xù)運(yùn)行所需的各類(lèi)資源數(shù)目,它含有m個(gè)元素,在執(zhí)行安全算法開(kāi)始時(shí),Work∶=Available;②Finish:它表示系統(tǒng)是否有足夠的資源分配給進(jìn)程,使之運(yùn)行完成。開(kāi)始時(shí)先做Finish[i]∶=false;當(dāng)有足夠資源分配給進(jìn)程時(shí),再令Finish[i]∶=true。(2)從進(jìn)程集合中找到一個(gè)能滿足下述條件的進(jìn)程:①Finish[i]=false;②Need[i,j]≤Work[j];若找到,執(zhí)行步驟(3),否則,執(zhí)行步驟(4)。(3)當(dāng)進(jìn)程Pi獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行:Work[j]∶=Work[i]+Allocation[i,j];Finish[i]∶=true;gotostep2;(4)如果所有進(jìn)程的Finish[i]=true都滿足,則表示系統(tǒng)處于安全狀態(tài);否則,系統(tǒng)處于不安全狀態(tài)。流程圖#include<iostream.h>#include<string.h>#include<stdio.h>#defineFalse0#defineTrue1intMax[100][100]={0};//各進(jìn)程所需各類(lèi)資源的最大需求intAvaliable[100]={0};//系統(tǒng)可用資源charname[100]={0};//資源的名稱(chēng)intAllocation[100][100]={0};//系統(tǒng)已分配資源intNeed[100][100]={0};//還需要資源intRequest[100]={0};//請(qǐng)求資源向量inttemp[100]={0};//存放安全序列intWork[100]={0};//存放系統(tǒng)可提供資源intM=100;//作業(yè)的最大數(shù)為100intN=100;//資源的最大數(shù)為100voidshowdata()//顯示資源矩陣{inti,j;cout<<"系統(tǒng)目前可用的資源[Avaliable]:"<<endl;for(i=0;i<N;i++)cout<<name[i]<<"";cout<<endl;for(j=0;j<N;j++)cout<<Avaliable[j]<<"";//輸出分配資源cout<<endl;cout<<"MaxAllocationNeed"<<endl;cout<<"進(jìn)程名";for(j=0;j<3;j++){for(i=0;i<N;i++)cout<<name[i]<<"";cout<<"";}cout<<endl;for(i=0;i<M;i++){cout<<""<<i<<"";for(j=0;j<N;j++)cout<<Max[i][j]<<"";cout<<"";for(j=0;j<N;j++)cout<<Allocation[i][j]<<"";cout<<"";for(j=0;j<N;j++)cout<<Need[i][j]<<"";cout<<endl;}}intchangdata(inti)//進(jìn)行資源分配{intj;for(j=0;j<M;j++){Avaliable[j]=Avaliable[j]-Request[j];Allocation[i][j]=Allocation[i][j]+Request[j];Need[i][j]=Need[i][j]-Request[j];}return1;}intsafe()//安全性算法{inti,k=0,m,apply,Finish[100]={0};intj;intflag=0;Work[0]=Avaliable[0];Work[1]=Avaliable[1];Work[2]=Avaliable[2];for(i=0;i<M;i++){apply=0;for(j=0;j<N;j++){if(Finish[i]==False&&Need[i][j]<=Work[j]){apply++;if(apply==N){for(m=0;m<N;m++)
Work[m]=Work[m]+Allocation[i][m];//變分配數(shù)Finish[i]=True;temp[k]=i;i=-1;k++;flag++;}}}}for(i=0;i<M;i++){if(Finish[i]==False){cout<<"系統(tǒng)不安全"<<endl;//不成功系統(tǒng)不安全return-1;}}cout<<"系統(tǒng)是安全的!"<<endl;//如果安全,輸出成功cout<<"分配的序列:";for(i=0;i<M;i++){//輸出運(yùn)行進(jìn)程數(shù)組cout<<temp[i];if(i<M-1)cout<<"->";}cout<<endl;return0;}voidshare()//利用銀行家算法對(duì)申請(qǐng)資源對(duì)進(jìn)行判定{charch;inti=0,j=0;ch='y';cout<<"請(qǐng)輸入要求分配的資源進(jìn)程號(hào)(0-"<<M-1<<"):";cin>>i;//輸入須申請(qǐng)的資源號(hào)cout<<"請(qǐng)輸入進(jìn)程"<<i<<"申請(qǐng)的資源:"<<endl;for(j=0;j<N;j++){cout<<name[j]<<":";cin>>Request[j];//輸入需要申請(qǐng)的資源}for(j=0;j<N;j++){if(Request[j]>Need[i][j])//判斷申請(qǐng)是否大于需求,若大于則出錯(cuò){cout<<"進(jìn)程"<<i<<"申請(qǐng)的資源大于它需要的資源";cout<<"分配不合理,不予分配!"<<endl;ch='n';break;}else{if(Request[j]>Avaliable[j])//判斷申請(qǐng)是否大于當(dāng)前資源,若大于則{//出錯(cuò)co裕ut蛋<<引"進(jìn)濤程"諷<<徐i<館<"司申請(qǐng)白的資衣源大側(cè)于系兵統(tǒng)現(xiàn)肚在可伙利用鵝的資首源"養(yǎng);co匯ut芹<<袋"駛分配憤出錯(cuò)錫,不釋予分弓配!濁"<曠<e摧nd壺l;ch凝='夸n'撇;br謙ea掃k;}}}if航(c蝕h=謀='襲y'赤)填{ch床an濤gd燈at各a(代i)虹;/冰/根通據(jù)進(jìn)片程需賣(mài)求量握變換策資源sh鋪ow器da若ta真()乘;/族/根絹據(jù)進(jìn)孕程需領(lǐng)求量劈燕顯示策變換用后的蝦資源sa敘fe置()尺;/踩/根死據(jù)進(jìn)靜程需但求量較進(jìn)行做銀行遞家算揉法判膠斷}}vo肉id遲a庸dd該re添so登ur矩ce偵s(尿){斜//超添加訪資源in吼t脹n,叔fl書(shū)ag章;co囑ut宋<<瓦"請(qǐng)竿輸入捐需要妻添加耍資源遭種類(lèi)益的數(shù)退量:塘";ci似n>帳>n貓;fl作ag途=N弦;N=慌N+罩n;fo丸r(連in粥t朋i=罪0;傘i<研n;更i+慰+)潔{co夏ut愈<<威"名惹稱(chēng):恭";ci番n>鮮>n滋am辣e[咱fl跳ag悄];co鳥(niǎo)ut炕<<折"數(shù)姐量:草";ci幼n>酷>A在va以li蠅ab氣le塊[f來(lái)la若g+壯+]渴;}sh找ow忽da械ta嘆()刮;sa逃fe勻()除;}vo攏id其d哥el尺re運(yùn)so銹ur沫ce蹲s(卸){融//朽刪除涉資源ch兩ar孟m嘴in貓g;in逆t陽(yáng)i,盯fl見(jiàn)ag浸=1程;co黎ut鈴<<傾"請(qǐng)饅輸入杜需要糖刪除勁的資忙源名蔽稱(chēng):串";do您{ci奸n>仁>m顛in鑰g;fo清r(爪i=德0;械i<類(lèi)N;鴉i+方+)if陳(m博in皇g=逼=n斜am不e[液i]師){fl軋ag乓=0攜;br他ea曠k;}if編(i妹==牽N)co賠ut勝<<紹"該奪資源月名稱(chēng)蒸不存腳在,嫁請(qǐng)重纏新輸亦入:槳";}wh察il亭e(沈fl媽ag支);fo魄r(蠻in側(cè)t勒j=獻(xiàn)i;幻玉j<臉N-示1;垃j+禁+){na花me顯[j箱]=傅na邊me趨[j任+1勇];Av得al帶ia妨bl擊e[扒j]書(shū)=A兇va料li忠ab沸l(wèi)e混[j潛+1鎖];}N=魯N-鍋1;sh糾ow鳥(niǎo)da哪ta貞()宇;sa乳fe澡()糠;}vo朗id霞c駐ha站ng顛er貍es薦ou倆rc防es青()膏{/窄/修舟改資秩源函陜數(shù)co商ut鈴<<弊"系帳統(tǒng)目足前可非用的充資源貪[A真va彈li松ab舊le井]:腐"<抗<e估nd洞l;fo釣r(松in副t北i=區(qū)0;煮i<輝N;鋸i+展+)co短ut惜<<昌na銅me盼[i膠]<艷<"襲:"旦<<召Av仁al壓ia竊bl揀e[躲i]忠<<梯en磨dl脫;co敲ut壩<<傳"輸鑄入系遭統(tǒng)可喬用資貼源[舊Av晨al辯ia犧bl碑e]悼:"農(nóng)<<避en夕dl六;ci榜n>他>A駕va脹li五ab糠le襲[0粗]>耽>A反va慰li睬ab土le岡[1午]>溫>A諷va狐li滲ab添le毯[2捧];co甚ut貪<<兔"經(jīng)軌修改汗后的思系統(tǒng)傅可用滲資源瘡為"鉆<<河en夸dl派;fo嘩r雪(i蠶nt我k權(quán)=0螺;k神<N服;k到++移)co哄ut稠<<陷na咱me親[k厘]<符<"風(fēng):"頸<<戰(zhàn)Av敬al圖ia離bl呀e[嬌k]尼<<社en惡dl敏;sh蝦ow箭da跑ta港()主;sa薦fe慶()纖;}vo事id攝a撿dd線pr殿oc序es訊s(仗){垃//細(xì)添加謠作業(yè)in臺(tái)t著fl楚ag服=M疏;M=溫M+盛1;co夠ut現(xiàn)<<討"請(qǐng)冰輸入嫂該作菜業(yè)的壇最打聞需求餡量[逐Ma鵲x]我"<覆<e防nd辛l;fo銷(xiāo)r(左in其t吳i=竄0;閃i<堤N(yùn);勿i+仗+)抽{co紐奉ut替<<伐na扁me芹[i桂]<催<"蒸:"讀;ci他n>邪>M補(bǔ)ax漠[f德la幣g]盜[i勢(shì)];Ne育ed脈[f承l(wèi)a仁g]敲[i犯]=兄Ma線x[牲fl悼ag盞][替i]負(fù)-A突ll啦oc田at贈(zèng)io閉n[館fl圣ag塘][偵i]湖;}sh月ow唐da徹ta符()蠅;sa躍fe壩()拘;}in吐t碰ma伯in通()達(dá)//炕主函識(shí)數(shù){in羨t次i,每j,展nu伸mb禾er悠,c殘ho耀ic嚼e,丹m,坡n,捉fl冰ag沉;ch只ar棋m捷in嚇g;co樸ut霸<<歲"*敞**樣**儉**易**慌**側(cè)**悼**晉**楊單處狹理機(jī)吧系統(tǒng)床進(jìn)程耕調(diào)度木實(shí)現(xiàn)屆**塵**叫**您**終**灑**番**龍**恩*"渴<<嚇en亞dl地;co干ut淹<<政"請(qǐng)耀首先君輸入青系統(tǒng)輝可供她資源園種類(lèi)慈的數(shù)盟量:叉";ci桐n>固>n犧;N=咳n;fo兆r(走i=泉0;魚(yú)i<雕n;答i+毛+){co繩ut姐<<驅(qū)"資爺源"統(tǒng)<<憑i+厘1<偽<"鹿的名部稱(chēng):葛";ci萄n>叼>m盯in撫g;na見(jiàn)me移[i轎]=腎mi誼ng尺;co宅ut雷<<禿"資脹源的鋼數(shù)量?jī)?chǔ):"均;ci需n>餓>n例um見(jiàn)be扶r;Av米al頂ia用bl租e[騙i]躲=n已um愚be責(zé)r;}co納ut棒<<咬en井dl析;co般ut桑<<茂"請(qǐng)舒輸入嫌作業(yè)鈴的數(shù)咬量:脆";ci鹽n>它>m禾;M=啦m;co德ut樹(shù)<<啦"請(qǐng)燃輸入數(shù)各進(jìn)菠程的苗最大崗需求喘量(音"<凱<m躬<<喊"*瓶"<亭<n悠<<輝"矩歡陣)先[M艘ax涌]:騰"<栽<e翻nd仁l;fo棵r(籮i=峽0;低i<梳m;樂(lè)i+蒼+)fo賣(mài)r(糧j=耕0;石j<隸n;今j+畜+)ci蠻n>脈>M此ax聾[i版][撇j]遲;do縮慧{fl訂ag饅=0停;co耕ut竊<<滴"請(qǐng)紅輸入皆各進(jìn)握程已張經(jīng)申耕請(qǐng)的健資源浩量(哨"<鼻<m居<<潮"*拜"<壓<n童<<疫"矩部陣)萄[A橡ll胖oc馳at帳io上n]俊:"正<<稈en瘋dl談;fo摟r(伐i=隔0;慘i<肉m;采i+矮+)fo鹽r(撿j=鞠0;緊j<棟n;跳j+冒+)初{ci搬n>嚇>A詠ll緩oc某at斤io肌n[婚i]速[j刪];if維(A圾ll鍛oc求at斷io驢n[亭i]躬[j粥]>慢Ma塑x[疫i]制[j香])fl稍ag稱(chēng)=1牲;Ne財(cái)ed刃[i保][捷j]陷=M含ax欺[i擋][觀j]堅(jiān)-A戚ll盾oc普at結(jié)io閥n[濾i]同[j幫];}if嬌(f寬la忠g)co遠(yuǎn)ut永<<去"申繡請(qǐng)的液資源船大于嚷最大鄙需求渡量,麗請(qǐng)重伏新輸際入!由\n賠";}wh妙il爐e(缺fl救ag豎);sh撈ow爸da柱ta瘡()車(chē);/廟/顯告示各蓋種資值源sa傾fe鹿()斤;/喚/用英銀行埋家算妨法判撈定系押統(tǒng)是棕否安憑全wh范il貧e(聯(lián)ch跡oi桶ce之){co話ut稻<<驅(qū)"*標(biāo)**糠**型**舞**切**蔑**句*銀暢行家碼算法鑰演示米**怠**美**爬**枯**溫**獄**死*"哥<<產(chǎn)en概dl桃;co飼ut鞏<<暑"遇1:能增加天資源飛"<協(xié)<e濱nd浴l;co蹄ut缸<<銷(xiāo)"說(shuō)2:蔬刪除孝資源旨"<蔽<e悉nd愚l;co諷ut票<<之"雅3:傳修改學(xué)資源疏"<索<e蘇nd街l;co心ut腿<<招"熱4:銜分配太資源墓"<刑<e甲nd精l;co叉ut罷<<波"錄5:潔增加構(gòu)作業(yè)復(fù)"<商<e哪nd昂l;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于撫養(yǎng)權(quán)的離婚協(xié)議
- 2.3《林黛玉進(jìn)賈府》【中職專(zhuān)用】高一語(yǔ)文(高教版2023基礎(chǔ)模塊上冊(cè))
- 湖南省郴州市第六中學(xué)觀山學(xué)校2023-2024學(xué)年七年級(jí)上學(xué)期第三次月考生物試題(原卷版)-A4
- 2023年地震數(shù)據(jù)采集系統(tǒng)項(xiàng)目籌資方案
- PEP人教版小學(xué)六年級(jí)上冊(cè)Unit6 How do you feel B Lets try Lets talk
- 《知識(shí)與個(gè)人知識(shí)》課件
- 電工(初級(jí)工)測(cè)試題及參考答案
- 山東省濟(jì)寧市微山縣2023-2024學(xué)年八年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 養(yǎng)老院老人入住資料制度
- 養(yǎng)老院老人安全管理制度
- 痛風(fēng)病科普講座課件
- 工作崗位風(fēng)險(xiǎn)評(píng)估報(bào)告
- 護(hù)理查房肺部感染心衰
- 拒執(zhí)罪申請(qǐng)書(shū)范本
- 《阿米巴經(jīng)營(yíng)》讀書(shū)分享
- 鉛酸鋰電池回收項(xiàng)目計(jì)劃書(shū)
- 北京市朝陽(yáng)區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末檢測(cè)語(yǔ)文試卷+
- (常州專(zhuān)版)江蘇省常州市2023-2024學(xué)年六年級(jí)數(shù)學(xué)上冊(cè)期末學(xué)情調(diào)研檢測(cè)卷一(蘇教版)
- 2024年中國(guó)人壽集團(tuán)公司招聘筆試參考題庫(kù)含答案解析
- 【職業(yè)院校班級(jí)精細(xì)化管理問(wèn)題及優(yōu)化建議分析8500字(論文)】
- 四年級(jí)藝術(shù)測(cè)評(píng)美術(shù)素養(yǎng)考試試題
評(píng)論
0/150
提交評(píng)論