版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、PAGE PAGE 56叭操作系統(tǒng)課程設(shè)板計(jì)說明書爸學(xué)院名稱:耙 盎 背專業(yè)班級(jí):巴 盎 版姓 名:芭 扳 跋學(xué) 號(hào):板 拔 板 矮 俺2010年7月按16日評(píng)分標(biāo)準(zhǔn)柏優(yōu)稗秀霸:疤有完整的符合標(biāo)翱準(zhǔn)的文檔,文檔爸有條理、文筆白通順,格式正確氨,程序完全實(shí)現(xiàn)拌設(shè)計(jì)要求,獨(dú)立稗完成敖;版良熬好氨:岸有完整的符合標(biāo)岸準(zhǔn)的文檔,文檔捌有條理、文筆通氨順,格式正確;昂程序完全實(shí)現(xiàn)設(shè)斑計(jì)要求,獨(dú)立完靶成,但存在少量斑錯(cuò)誤耙;懊中胺等耙:氨有完整的符合標(biāo)佰準(zhǔn)的文檔,有基絆本實(shí)現(xiàn)設(shè)計(jì)方案稗的軟件,設(shè)計(jì)方挨案正確;霸及格:壩有完整的符合標(biāo)凹準(zhǔn)的文檔,有基邦本實(shí)現(xiàn)設(shè)計(jì)方案扳的軟件,設(shè)計(jì)方埃案基本正確;胺不及格:斑
2、沒有完整的符合爸標(biāo)準(zhǔn)的文檔,軟矮件沒有基本實(shí)現(xiàn)按設(shè)計(jì)方案,設(shè)計(jì)霸方案不正確。沒班有獨(dú)立完成,抄霸襲或雷同。凹成績?cè)u(píng)定為:胺 爸 氨。扮 背 阿 邦 昂 翱 指導(dǎo)教師:敖 疤 凹 熬 伴 愛 半 百 懊年 月 板 日目 錄 哀一埃進(jìn)程調(diào)度把算法爸 巴 爸 艾 暗42搬3 斑 爸頁挨二伴銀行家算法哀 板 芭 案 拔 24敗-34皚 白頁百三哀磁盤調(diào)度安算法稗 敗 敖 辦 頒35柏-46頁進(jìn)程調(diào)度算法1設(shè)計(jì)目的百 在多柏道程序設(shè)計(jì)中,班經(jīng)常是若干個(gè)進(jìn)板程同時(shí)處于就緒鞍狀態(tài),必須依照阿某種策略決定哪頒個(gè)進(jìn)程優(yōu)先占有奧處理機(jī),因而必把須解決進(jìn)程調(diào)度懊的問題,進(jìn)程調(diào)骯度算法就是要解安決進(jìn)程調(diào)度的問哀題。骯
3、2.半 辦任務(wù)及要求藹2.1 斑設(shè)計(jì)任務(wù)扳 設(shè)計(jì)骯程序來模擬進(jìn)程扒的四種調(diào)度算法奧,模擬實(shí)現(xiàn)調(diào)度板的基本功能。骯2.2 澳設(shè)計(jì)要求盎 扮產(chǎn)生翱的各種隨機(jī)數(shù)要拌加以限制,如a板lltime限瓣制在40以內(nèi)的絆整數(shù)。拌進(jìn)程的數(shù)量n不靶能取值過大。熬3.頒 半算法及數(shù)據(jù)結(jié)構(gòu)礙3.1矮算法的總體思想罷(流程)盎 藹每個(gè)用來標(biāo)識(shí)進(jìn)氨程的進(jìn)程控制塊罷PCB用結(jié)構(gòu)來懊描述,包括以下澳字段:敖(1)進(jìn)程優(yōu)先罷數(shù)ID,其中0辦為閑逛進(jìn)程,用挨戶進(jìn)程的標(biāo)識(shí)數(shù)啊為1,2,3拌邦。癌(2)進(jìn)程優(yōu)先邦級(jí)Priori扒ty,閑逛進(jìn)程壩(idle)的矮優(yōu)先級(jí)為0,用板戶進(jìn)程的優(yōu)先級(jí)襖大于0,且隨機(jī)稗產(chǎn)生,優(yōu)先數(shù)越安大,優(yōu)先
4、級(jí)越高罷。?。?)進(jìn)程占用搬的CPU時(shí)間C癌PUtime,芭進(jìn)程每運(yùn)行一次邦,累計(jì)值等于4班。絆(柏4)進(jìn)程總共需邦要運(yùn)行時(shí)間Al矮ltime,利瓣用隨機(jī)函數(shù)產(chǎn)生皚。盎(5)進(jìn)程狀態(tài)把,0:就緒態(tài);壩1:運(yùn)行態(tài);2挨:阻塞態(tài)。阿 利用鏈表將數(shù)邦據(jù)連接起來,實(shí)絆現(xiàn)數(shù)據(jù)的存儲(chǔ)。頒3.2 板鏈表模塊邦3.2.1安 懊功能叭 芭實(shí)現(xiàn)愛鏈表的存儲(chǔ)功能爸,以及實(shí)現(xiàn)存儲(chǔ)半的查找功能。罷3.2.2扒 笆數(shù)據(jù)結(jié)構(gòu)愛 俺構(gòu)造鏈表這個(gè)數(shù)霸據(jù)結(jié)構(gòu),以及鏈俺表的初始化,鏈頒表的插入昂,鏈表的長度芭。扳3.2.癌3伴 拌算法隘 白typedef霸 struct白愛 El八emType 稗 *elem;矮 暗 in藹t 芭
5、 length罷; 愛 in扒t 拜 listsi熬ze;耙 SqLis扳t艾;挨Status 叭InitLis把t(SqLis懊t &l)佰辦l.elem=藹(ElemTy搬pe*)mal佰loc(LIS爸T_INIT_翱SIZE*si稗zeof(El百emType)吧);挨扒if(!l.e按lem) 昂exit(OV八ERFLOW)靶;敖辦l.lengt爸h=0;捌唉l.lists盎ize=LIS氨T_INIT_扳SIZE;哎礙return 捌OK;爸int Lis胺tLength哀(SqList埃 l)愛把return(鞍l(fā).lengt安h);愛Status 盎ListIns般ert_S
6、q(奧SqList 頒&L,int 翱i, Elem敖Type e)芭霸/在順序表L伴的第i個(gè)位置前礙插入元素e,i安的合法值為1.稗.L.leng吧th+1按 if(iL.半length+稗1) 壩隘 retur般n ERROR罷; 爸 if(L.笆length伴=L.list案size)罷 挨 稗 巴 E礙lemType板*newbas邦e=(Elem瓣Type *)癌realloc案(L.elem白,(L.lis阿tsize+L哀ISTINCR百EMENT)*盎sizeof(翱ElemTyp唉e);盎 i案f(!newb熬ase) 艾 exit(背OVE按RFLOW);柏 拜 L笆.el
7、em=n絆ewbase;氨 盎捌 L.lis哎tsize+=扳LISTINC背REMENT; 懊 ElemT扮ype *q=翱&L.elem澳i-1, 叭*p=&L.e案lemL.l唉ength-1敗;耙 while般(p=q) 昂熬 *(p+1霸)=*p; -皚-p;阿 /邦插入位置后的元白素右移 *q=e;靶 +L.l哀ength;笆 retur爸n OK;搬Status 奧GetElem頒(SqList盎 L,int 敗i,ElemT襖ype 八&e)壩鞍if(iL.l辦ength)伴愛稗r(nóng)eturn 搬ERROR;else敖昂藹e=*(L.e霸lem+i-1巴);敗案return 疤O
8、K;霸void Ou般tputlis爸t(SqLis鞍t &L)佰邦if(0=L斑.length般)安班班printf(芭空集!);else扒 唉絆 for跋(int i=愛0;iL.l八ength;+罷+i)艾靶 扳 printf芭(%c,*奧(L.elem拜+i);傲3.3 拜主函數(shù)模塊3.3.1功能按 邦 昂實(shí)現(xiàn)進(jìn)程調(diào)度的胺四種算法,以及辦人機(jī)交互的菜單敖。罷3.3.2疤 霸數(shù)據(jù)結(jié)構(gòu)阿 愛主要包括五個(gè)部澳分,分別是四種癌算法,和進(jìn)程的礙輸入和菜單部分絆,功能拜分別阿實(shí)現(xiàn)。3.3.3算法辦void ma絆in()扒埃for(1;暗)唉胺int nu凹mber;八擺 PCB昂 pcb1八00
9、 ;哀吧srand(t俺ime(0)般;斑把int max翱;扳捌int pp隘p100;邦啊int ti邦me=0;氨巴int ti叭me1;昂癌int m;胺邦int a霸100;耙搬a0=0;搬扳printf(盎n*柏*拌*挨*瓣進(jìn)程調(diào)度算法的奧模擬*版*翱*吧*隘*n);八背printf(罷* 1叭.先到先服務(wù)調(diào)稗度 扮2.最短作業(yè)優(yōu)暗先調(diào)度 斑 *n);佰愛printf(艾* 3絆.優(yōu)先權(quán)調(diào)度 邦 挨 4.輪轉(zhuǎn)發(fā)暗調(diào)度 邦 *艾n);岸伴printf(懊*按*敖*擺*背*巴*盎*把*埃*澳*凹*)版;半稗printf(白n請(qǐng)選擇調(diào)礙度的方法: 罷);骯礙scanf(疤%d,&m)氨;
10、按鞍if(m!=1扒&m!=2&岸&m!=3&胺m!=4)板稗 prin澳tf(輸入錯(cuò)扮誤! 重新輸入盎: );翱背 scan扳f(%d,愛&m);拜稗 if(m昂!=1&m!伴=2&m!=愛3&m!=4斑) 跋百安 prin皚tf(輸入錯(cuò)敗誤! 重新輸入骯: );辦鞍 鞍scanf(案%d,&m)版;矮矮敗 if(m礙!=1&m!埃=2&m!=百3&m!=4鞍) 佰拔芭拌 prin般tf(輸入錯(cuò)罷誤! 重新輸入昂: );靶扮 稗 sca爸nf(%d懊,&m);暗愛八背 if(m襖!=1&m!拜=2&m!=扮3&m!=4埃) 邦拌跋暗靶 prin芭tf(輸入錯(cuò)罷誤! 重新輸入扒: );斑挨 挨
11、 安 scanf(辦%d,&m癌);胺襖瓣藹 啊 襖皚printf(伴請(qǐng)輸入進(jìn)程的岸個(gè)數(shù): )捌;笆懊唉scanf(愛%d,&nu靶mber);霸霸printf(板n開始時(shí)用拔戶進(jìn)程均為就緒把狀態(tài),運(yùn)行時(shí)間埃隨機(jī)產(chǎn)生n昂n);霸俺SqList 鞍 sq;拜爸InitLis版t(sq);疤頒for(int疤 r=0;r百number;盎r+)跋芭壩pcbr.版CPUtime俺=0;佰氨for(int稗 i=0;i霸number;暗i+)疤 扳傲pcbi.罷Priorit鞍y=rand(敖)%50;芭把伴while(1稗)敗白瓣 if(p凹cbi.P矮riority隘20) 挨疤八 氨半pcbi.
12、百Priorit頒y=rand(襖)%50; 頒斑隘 else瓣 懊哀瓣凹 brea懊k;般 芭背pcbi.埃Alltime般=rand()伴%40;半斑疤while(1安)稗百八 if(皚pcbi.熬Alltime襖10)霸搬八 岸唉pcbi.班Alltime頒=rand()般%40;敗霸捌把else 皚笆暗捌伴break;拜霸for(int皚 j=0;j懊number;白j+)傲翱叭ListLen阿gth(sq)半;靶哀哀ListIns霸ert_Sq(般sq,List爸Length(艾sq),pcb靶i );阿矮 if(m叭=1) 爸骯 壩芭printf(隘n*邦*熬*程序翱演示開始*阿*
13、熬*愛n);稗伴 唉 int co藹un=0; 耙 皚 襖 岸 /板計(jì)數(shù)變量爸背 壩 int wa半it100叭; 安 藹 扮 /巴等待時(shí)間數(shù)組唉翱 拜版wait0扳=0;翱岸 唉哎int All笆wait=0;岸伴 癌敗for(int挨 i1=0;i扳1numbe辦r;i1+)芭凹拔笆絆printf(澳下面開始調(diào)用疤第%d個(gè)進(jìn)程;懊 n,i1襖);扒伴 懊班稗printf(隘開始時(shí)間為%凹d 執(zhí)行懊時(shí)間為%dn扮,coun,班pcbi1按.Alltim胺e);辦絆白 頒疤coun+=p挨cbi1.版Alltime氨;八安 案阿艾if(i1!=笆0)岸班按把埃隘waiti1凹=pcbi板1-1
14、.Al安ltime+w澳aiti1-氨1;暗壩靶半翱 吧疤 鞍斑for(int啊 i2=0;i罷2numbe辦r;i2+)俺矮瓣襖靶Allwait般=wai藹ti2+A扮llwait;擺哀 瓣疤printf(佰平均等待時(shí)間矮為:%dn扮,Allwai罷t/numbe吧r); 耙跋 if(m澳=2) 暗骯敖 佰int min捌=pcb0胺.Alltim俺e;奧 案 int凹 wait1隘100;吧敗 昂瓣 罷wait10凹=0;癌爸 壩int in=跋0;捌哎百 int 拜coun1=0拔;霸把胺 prin伴tf(*靶*凹*岸最短作業(yè)優(yōu)先調(diào)跋度!*阿*柏*扮*n);版辦罷 cout皚進(jìn)程所需按時(shí)
15、間分別是:皚endl;安搬捌 for(八i=0;in按umber;i氨+) 笆霸笆伴 cout搬pcbi艾.Allti巴meend隘l; 愛巴傲 prin扮tf(進(jìn)程調(diào)白度的順序?yàn)? 敗 );霸佰敗 for(哀i=0;in阿umber;i拜+) 疤盎奧癌 min=百50;吧 捌 疤 for(j=白0;jnum礙ber;j+啊) 襖爸八矮阿 if(p般cb捌j.Allt哀imemin啊)凹傲扮哀耙 礙擺斑礙鞍藹 稗min=pcb癌j.All爸time;版隘胺邦辦 熬in=j;拌暗班艾哀吧 凹唉八扮佰昂哀盎 扮版邦阿 prin氨tf(%d 壩 ,in+1埃);板拜絆伴 pcb岸in.All擺tim
16、e+=5骯0;敖拔熬 癌罷埃 稗岸昂 芭 安if(m=3把) 矮翱百 prin把tf(ID 案 優(yōu)先翱級(jí) 運(yùn)芭行總時(shí)間 埃 進(jìn)程狀盎態(tài)n);背阿翱 for(搬int k=0矮; knum板ber; k+版+) 斑靶笆敖 prin昂tf(%d 案 岸 %d 巴 板 %d 巴 癌 就緒n,傲k+1, pc把bk.Pr澳iority,絆 pcbk耙.Alltim翱e); 佰扮皚 prin斑tf(n*扮*阿*白*哎*程序調(diào)度演示鞍開始*伴*頒*八*n笆);捌岸埃 for(敗int f=1版;f1000叭;f+) 吧扮瓣瓣 int 頒 count=稗0,count壩1=0;岸凹拜唉 for(傲int i
17、=0凹;inumb擺er;i+) 胺拔鞍哀礙 ppp頒i=pcb案i.Prio凹rity;唉矮罷 啊 if(耙pcbi.擺Alltime懊!=0)挨哀胺八襖 爸阿瓣把罷阿 coun辦t1+;阿扳靶凹昂 阿氨翱耙 coun敗t1-;矮盎 敖拌 time哀=time+c辦ount1*4靶;半罷 翱 max俺=Max(pp瓣p,numbe骯r);壩盎 骯案 if(p爸cbmax稗.Alltim板e(cuò)=0) 扳瓣暗吧哎 ppp俺max=-1按;熬板佰 埃 pcb暗max.P靶riority扮=-1;八爸靶艾 啊max=Max盎(ppp,nu半mber); 佰襖霸案 pcb稗max.Pr啊iority-骯
18、=4;巴哎 昂 pcb澳max.A盎lltime-挨=4;奧霸巴 扮pcbmax熬.CPUti稗me+=4;班霸 鞍罷 if(p柏cbmax俺.Alltim叭e=0) 皚霸柏礙爸 pcb懊max.Al瓣ltime=0拔; 笆 靶 安 for(in岸t w=0;w俺number瓣;w+) 跋案爸百班 if(p暗cbw.A頒lltime=皚=0)愛扒懊懊巴 般壩跋盎靶案 ppp隘w=-1;般捌 襖把 案罷 把pcbw.搬Priorit搬y=-1;扮哎凹把艾 背吧絆捌 for(板int e=0澳; enum翱ber;e+傲) 斑捌八罷俺 pcb啊e.Prio敖rity+; 岸癌 吧 跋按 prin胺
19、tf(n#柏#敗#第%d個(gè)進(jìn)拔程正在執(zhí)行!#白#扮#n,m盎ax+1);稗岸懊 皚printf(搬n第%d次奧調(diào)度結(jié)束,運(yùn)行佰結(jié)果為:n扳n,f);奧靶澳 扳printf(盎ID 罷 優(yōu)先級(jí) 癌 需要總時(shí)捌間 礙 執(zhí)行時(shí)間伴n);瓣按吧 爸for(int瓣 k=0; k哀number耙; k+)藹鞍案拜 壩扳版奧伴 prin拔tf(%d 奧 隘 %d 版 柏 暗 %d 俺 艾 %d隘 n,k+半1, pcb按k.Prio白rity, p白cbk.A熬lltime,敖pcbk.頒CPUtime艾); 愛安礙 凹for(int阿 l=0;l版number;愛l+) 藹案稗霸哀 if(p艾cbl.A
20、盎lltime=扮=0)胺奧吧拔壩絆 coun擺t+; 扳盎斑 安if(coun扳t=numb翱er) 叭案骯板頒 brea凹k;八凹凹捌 白 皚搬案 time稗1=time/阿number;敖矮 鞍扒 prin版tf(n*氨*昂*案*斑*半用戶進(jìn)程全部執(zhí)頒行完畢!*骯*版*皚*哎*愛);稗胺捌 prin八tf(n盎n平均等待時(shí)間扮是: );耙翱壩 prin把tf(%d岸nn,ti凹me1); 擺巴 if(m癌=4) 叭笆澳 prin白tf(ID 愛 霸 運(yùn)行總時(shí)間 案 進(jìn)捌程狀態(tài)n)矮;艾 邦 班案for(int邦 k=0; k阿number唉; k+伴+)白骯芭罷岸printf(扳%d 柏
21、 襖 搬 %d 盎 敗 就緒n懊,k+1, 藹pcbk.隘Alltime氨);氨 巴 挨搬printf(澳n*罷*辦*八*程序鞍調(diào)度演示開始*襖*哀*跋*佰*n);傲 俺 霸班for(int邦 f=1;f熬1000;f+敗+)扒矮翱案懊int co伴unt=0;翱把埃 頒隘for(i=0板;i0)辦阿絆岸斑扒胺pcbi.百Alltime岸-=4;襖礙耙板襖 稗絆pcbi.捌CPUtime搬+=4;艾把 板 敖爸if(pcb爸i.Allt敗ime0)叭癌絆耙百班般pcbi.百Alltime阿=0;傲擺稗昂哀艾 艾唉/唉/敖/愛/斑/搬/白/霸/矮巴稗凹 罷般printf(拌n#埃#第把%d個(gè)進(jìn)程
22、正在疤執(zhí)行!#敖#擺n,i+1)靶;骯斑 暗 岸 print頒f(n第%叭d次調(diào)度結(jié)束,鞍運(yùn)行結(jié)果為:俺nn,f)氨;鞍白 壩 半稗 pri澳ntf(ID哀 疤 邦 需要時(shí)埃間 凹 執(zhí)爸行時(shí)間n)翱;霸俺 俺 捌叭for(int奧 k=0; k岸number邦; k+) 安敗敖挨拔氨白printf(凹%d 案 敖 搬 班 %d叭 罷 靶 %d n跋,k+1, 捌pcbk.笆Alltime頒,pcbk辦.CPUtim懊e);班凹/哀/瓣/按/阿/懊/伴/扳/巴吧叭叭擺半for(int霸 l=0;l疤number;阿l+)拌盎扳艾胺斑if(pcb捌l.Allt辦ime=0)懊捌版奧伴氨拔count
23、+耙;盎芭 皚 if瓣(count=藹=number板)班斑背艾拔爸break;耙藹皚皚printf(白n*胺*懊*胺*襖*用戶進(jìn)八程全部執(zhí)行完畢哀!*柏*辦*傲*壩*);翱懊 板凹 氨4.唉 矮實(shí)驗(yàn)結(jié)果及分析挨4.1傲 拔實(shí)驗(yàn)結(jié)果靶 唉 氨先到先服務(wù)算法班的實(shí)驗(yàn)結(jié)果如下耙:埃最短作業(yè)優(yōu)先調(diào)艾度的實(shí)驗(yàn)結(jié)果如矮下:安優(yōu)先權(quán)調(diào)度算法暗的實(shí)驗(yàn)結(jié)果如下八:吧輪轉(zhuǎn)法調(diào)度的實(shí)耙驗(yàn)結(jié)果如下:版4.2 般結(jié)果分析罷 把本次試驗(yàn)基本實(shí)百現(xiàn)了進(jìn)程調(diào)度的百四種算法,盎每一種算法都能柏模擬出算法的具凹體過程。相應(yīng)的啊結(jié)果也完全符合扳預(yù)想的結(jié)果。同奧時(shí),對(duì)于算法的跋實(shí)踐編寫進(jìn)一步啊增加了編程的技鞍巧,以及編程的扒熟練程
24、度。銀行家算法1設(shè)計(jì)目的唉 銀行家算法疤是避免死鎖的一艾種十分重要的方安法,通過編寫一捌個(gè)模擬的動(dòng)態(tài)的拜銀行家算法的程叭序,能夠進(jìn)一步爸加深對(duì)死鎖的理矮解,以及產(chǎn)生死凹鎖的必要條件。盎并掌握通過銀行奧家算法來避免死擺鎖。襖2.頒 疤任務(wù)及要求跋2.1 敖設(shè)計(jì)任務(wù)百 傲 根據(jù)佰銀行家算法的基隘本思想來設(shè)計(jì)程扒序,模擬銀行家氨算法的過程。用版程序來實(shí)現(xiàn)銀行霸家算法的具體動(dòng)叭態(tài)過程。伴2.2 柏設(shè)計(jì)要求岸 扮根據(jù)扳銀行家算法的基搬本思想,編寫和熬調(diào)試一個(gè)能實(shí)現(xiàn)笆動(dòng)態(tài)的分配資源傲的模擬程序。并扒能夠有效的防止捌死鎖的發(fā)生。翱3.愛 算法及數(shù)據(jù)結(jié)熬構(gòu)稗3.1擺算法的總體思想擺(流程)吧 埃銀行家算法的佰
25、基本思想是,系柏統(tǒng)中的所有進(jìn)程阿放入進(jìn)程集合,佰在安全狀態(tài)下系擺統(tǒng)受到進(jìn)程的請(qǐng)啊求后會(huì)試探性的般把資源分配給他斑,現(xiàn)在系統(tǒng)將剩暗下的資源和進(jìn)程襖集合中其他進(jìn)程愛還需要的資源作般對(duì)比,找出剩余安資源能滿足的進(jìn)頒程,從而保證進(jìn)啊程運(yùn)行完并釋放藹資源繼續(xù)滿足剩矮下進(jìn)程對(duì)資源的凹需要。最后檢查把集合為空集時(shí)表骯明本次申請(qǐng)可行扒,系統(tǒng)繼續(xù)處于澳安全狀態(tài),可以拜實(shí)施本次分配。版否則不能實(shí)施本懊次分配。奧3.2 礙顯示資源矩陣瓣 癌showdat傲a()背 澳模塊絆3.2.1案 挨功能傲 胺主要是顯示資源艾的矩陣頒,包括輸入的已把分配的的資源矩氨陣,以及輸出的絆資源矩陣。靶3.2.2絆 敖數(shù)據(jù)結(jié)構(gòu)柏 挨最大
26、需求百矩陣max以及版已分配矩陣al跋locatio拌n,分別定義為絆m*n階的矩陣皚,利用二維數(shù)組挨來存儲(chǔ)。澳3.2.柏3唉 板算法百void sh敖owdata(礙) /班/顯示資源矩陣哀 int 阿i,j;案 cout奧系統(tǒng)目前板可用的資源A班valiabl斑e:e白ndl;艾 for(安i=0;iN跋;i+) 稗盎 cout靶name澳i 跋; 芭 cout奧endl;吧 for 阿(j=0;j凹N;j+) 拌 c懊outAv凹aliab熬lej懊 ; 挨 /輸吧出分配資源 拜 cout暗endl;按 cout搬 岸 岸 Max 襖 All拔ocation稗 Ne柏eden搬dl;疤
27、cout安endl;罷 cout啊進(jìn)程名 把 ;暗 for(芭j=0;j3巴;j+) 阿 f伴or(i=0;擺iN;i+暗)鞍 c凹o(jì)utna班mei盎 ;暗 c挨out 叭 ; 芭 cout傲endl;挨 for(吧i=0;iM懊;i+) 板 c搬out 澳i傲 搬 ;把 f吧or(j=0;哎jN;j+氨) 叭 扮 cout芭Maxi矮j 安; 伴 c板out 翱 ;盎 f隘or(j=0;愛jN;j+哀) 扮 熬 cout懊Alloca扮tioni捌j 佰; 襖 c阿out 俺 ;拔 f埃or(j=0;斑jN;j+稗) 翱 霸 cout藹Needi按j隘 ; 傲 c罷outen哎dl; 爸3
28、.3 藹申請(qǐng)資源判定模傲塊3.3.1功能霸 利用啊銀行家實(shí)現(xiàn)對(duì)申骯請(qǐng)的資源進(jìn)行判版定。熬3.3.2扒 翱數(shù)據(jù)結(jié)構(gòu)柏 對(duì)已盎經(jīng)存儲(chǔ)的矩陣進(jìn)暗行比較。3.3.3算法叭void sh翱are() 巴 瓣 哀 叭 /利用銀行扳家算法對(duì)申請(qǐng)資昂源對(duì)進(jìn)行判定盎 懊char ch安;骯 int昂 i=0,j=懊0;敗 矮ch=y;盎 cou伴t請(qǐng)輸入吧要求分配的資源藹進(jìn)程號(hào)(0-柏M-1i; 疤 氨 敖 耙 /輸入須申拔請(qǐng)的資源號(hào)癌 cou板t請(qǐng)輸入白進(jìn)程 i八 申請(qǐng)的傲資源:e拌ndl;岸 for巴(j=0;j骯N;j+)伴 般 cout擺namej扮R澳equest凹j; 爸 鞍 耙 /輸入需笆要申請(qǐng)的
29、資源扳 fo矮r (j=0;罷jNeed敗ij) 稗 板/判斷申請(qǐng)是按否大于需求,若懊大于則出錯(cuò) 扳 氨 芭cout佰進(jìn)程 i班申請(qǐng)的資埃源大于它需要的骯資源;啊 罷 翱cout搬 分配不合理,啊不予分配!鞍A襖valiabl佰ej) 白 芭 /判斷申請(qǐng)懊是否大于當(dāng)前資氨源,若大于則吧柏八霸 版 挨 靶 案 拜 礙 佰 co頒ut進(jìn)程氨i奧申請(qǐng)的資源大于柏系統(tǒng)現(xiàn)在可利用扒的資源;隘 俺 盎 co擺ut 分捌配出錯(cuò),不予分扮配!en靶dl;襖 胺 把 ch板=n;哀 頒 熬 br版eak; 凹 if(拔ch=y邦)埃 暗changda絆ta(i); 哎 皚 傲 /根據(jù)進(jìn)程盎需求量變換資源扒 拔s
30、howdat敖a(); 柏 拔 柏 /根據(jù)進(jìn)程霸需求量顯示變換版后的資源百 佰safe();頒 敗 骯 奧 /根據(jù)進(jìn)程唉需求量進(jìn)行銀行矮家算法判斷 搬3.矮4敖 岸主函數(shù)隘模塊3.4.1功能叭 壩 澳實(shí)現(xiàn)銀行家算法把對(duì)資源的增加、耙刪除、修改矮。凹3.4班.2皚 霸數(shù)據(jù)結(jié)構(gòu)敗 昂對(duì)已經(jīng)完成的模艾塊進(jìn)行功能集成頒。3.4.3算法搬int mai笆n()隘 int敗 i,j,nu襖mber,ch矮oice,m,胺n,flag;癌 cha唉r ming;安頒 按coute俺ndl; 敗cout唉*澳*跋*鞍* 銀*行爸*家*算*法 邦*稗*壩*阿endl;翱頒coute矮ndl;襖 cou叭tn;八
31、翱coute襖ndl;扮 N=n把;翱 for辦(i=0;i艾n;i+) 耙胺稗 鞍cout翱資源i+笆1m芭ing;擺 辦 namei隘=ming;礙 唉 coutn岸umber;俺 柏 Avalia巴blei=拔number;扳 cou芭tendl霸;般 cou扮tm;熬 M=m辦;扒 cou艾t請(qǐng)輸入熬各進(jìn)程的最大需皚求量(m唉*瓣n矩陣)熬:end疤l;壩 for搬(i=0;i埃m;i+)八 唉 for(j哀=0;jMax擺ij; do搬吧哎flag=0;芭 吧 cout矮請(qǐng)輸入各進(jìn)程奧已經(jīng)申請(qǐng)的資源矮量(m澳*n骯矩陣):八endl艾;拌 瓣 for(i=稗0;im;i艾+)懊 熬
32、瓣 氨for(j=0安;jAl奧locatio敗nij班;百 俺 壩 拜 if(Al翱locatio俺nij擺Maxi板j)艾 扮 叭 敖 吧 flag=1凹;艾 懊 把 岸 Need啊ij=M罷axij吧-Alloc頒ationi愛j;百柏吧 笆 百八 絆 if(fla半g)般 芭 co隘ut申請(qǐng)哎的資源大于最大版需求量,請(qǐng)重新邦輸入!n爸endl;矮胺while(澳flag);按 sho靶wdata()伴; 吧 唉 礙 擺/顯示各種資擺源吧 saf跋e(); 懊 胺 扮 稗 昂/用銀行家算霸法判定系統(tǒng)是否壩安全半 whi按le(choi頒ce)百安罷cout翱*邦*皚*啊*銀行吧家算法演示
33、*爸*邦*翱*稗*end吧l;啊 霸 cout背 柏 扮 1:增加資矮源 ;跋 耙 cout靶 哀 扮 2:刪除資安源 昂 案 芭 皚 end靶l(wèi);半 把 cout盎 鞍 邦 3:修改資辦源 ;哎 癌 cout邦 按 暗 4:分配資吧源 拌 啊 翱 愛 end凹l; 霸 般 cout板 靶 擺 5:翱增加進(jìn)程拜 ;懊 襖 cout捌 襖 奧 0:離開 斑 拜 哎 捌 哎 e頒ndl; 挨 鞍 cout拔*白*啊*暗*搬*敖*半*吧*翱*阿*en白dl;昂 扳 coutc氨hoice;扒 疤 switch矮(choice哀)板挨 叭拔 靶case 1:傲 addres胺ources(捌);bre
34、ak巴;澳 暗 ca爸se 2: d哀elresou案rces();搬break;頒 岸 ca辦se 3: c般hangere靶sources稗();brea熬k;癌 辦 ca霸se 4: s擺hare();奧break;捌 疤 ca凹se 5: a襖ddproce拔ss();br鞍eak;襖 唉 ca芭se 0: c半hoice=0扮;break;埃 挨 de安fault: 盎cout八請(qǐng)正確選擇功能隘號(hào)(0-5)!懊ne按xt;斑 for挨(int i=拔0;ida懊ta-f);艾 稗 f=l-d捌ata;安 拔 l=l-n柏ext;扒 num拔=num/c;絆 cou壩t先來先啊服務(wù)的尋
35、道順序稗是:en巴dl;拌 pri癌nt(head懊);搬 cou拔t平均尋伴道長度:奧num白next=NU叭LL;傲 m=l奧;皚 q=h芭ead;矮 p=h拔ead-ne辦xt;隘 s=h芭ead;擺 r=h邦ead-ne瓣xt;瓣 flo矮at num=板0;癌 for佰(int i=艾0;idata奧);扮 拔 for(in巴t j=0;j巴ne阿xt;瓣 扳 q=爸q-next叭;捌 靶 if叭(abs(f-八p-data翱)d捌ata);暗 襖 藹 r=p;暗 背 懊 s=q;啊 啊 num+=a爸bs(f-r-半data);案 扮 f=r-d巴ata;昂 半 s-nex奧t=r
36、-ne伴xt;吧 奧 r-nex骯t=NULL;百 搬 m-nex骯t=r;班 扮 m=r;挨 爸 q=head扳;敖 斑 p=head巴-next;八 扮 s=head拜;笆 艾 r=head拌-next;扳 num皚=num/c;翱 cou伴t最短尋礙道時(shí)間優(yōu)先順序擺是:en按dl;靶 pri絆nt(l);搬 cou伴t平均尋哎道長度:巴num鞍next=NU傲LL;襖 s=r版;澳 m=(伴Node *)芭malloc(霸sizeof(懊Node);懊 盎 奧 /存放隘比開始磁道大的按磁道傲 m-按next=NU胺LL;按 n=m班;癌 x=(絆Node *)吧malloc(扳sizeof(拜Node);敗 x-靶next=NU氨LL;辦 y=x靶;氨 q=h巴ead;哎 p=h翱ead-ne艾xt;氨 whi把le(p-n盎ext!=NU隘LL)鞍阿阿if(p-d擺ata-f0矮)骯佰疤芭q-next靶=p-nex拌t;暗 邦 p-矮next=N骯ULL;奧 白 n-拔next=p搬;佰 隘 n=稗p;扮 白 p=般q-next爸;頒 骯 i+百+;俺 藹
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024酒水購銷合同模板
- 2024三方運(yùn)輸合同的范本
- 2024購銷水泥合同范文
- 標(biāo)準(zhǔn)房屋轉(zhuǎn)讓協(xié)議樣本
- 2024房屋拆遷合同范本
- 2024機(jī)械設(shè)備購銷合同范本
- 建筑材料銷售合同模板:建筑材料買賣合同參考
- 2024居室裝飾裝修施工合同范本
- 2024年民事調(diào)解協(xié)議書參考范本
- 標(biāo)準(zhǔn)服務(wù)合同范例大全
- 工廠改造施工方案
- 初中英語新課程標(biāo)準(zhǔn)詞匯表
- 《春節(jié)的文化與習(xí)俗》課件
- 手機(jī)棋牌平臺(tái)網(wǎng)絡(luò)游戲商業(yè)計(jì)劃書
- 學(xué)校體育與社區(qū)體育融合發(fā)展的研究
- 醫(yī)療機(jī)構(gòu)高警示藥品風(fēng)險(xiǎn)管理規(guī)范(2023版)
- 一年級(jí)體質(zhì)健康數(shù)據(jù)
- 八年級(jí)物理(上)期中考試分析與教學(xué)反思
- 國家開放大學(xué)《財(cái)政與金融(農(nóng))》形考任務(wù)1-4參考答案
- 2023銀行網(wǎng)點(diǎn)年度工作總結(jié)
- 工廠反騷擾虐待強(qiáng)迫歧視政策
評(píng)論
0/150
提交評(píng)論