進(jìn)程調(diào)度算法實(shí)驗(yàn)報(bào)告_第1頁
進(jìn)程調(diào)度算法實(shí)驗(yàn)報(bào)告_第2頁
進(jìn)程調(diào)度算法實(shí)驗(yàn)報(bào)告_第3頁
進(jìn)程調(diào)度算法實(shí)驗(yàn)報(bào)告_第4頁
進(jìn)程調(diào)度算法實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、操作系統(tǒng)實(shí)驗(yàn)報(bào)告 ( 二)實(shí)驗(yàn)題目 : 進(jìn)程調(diào)度算法實(shí)驗(yàn)環(huán)境 :C+實(shí)驗(yàn)?zāi)康?:編程模擬實(shí)現(xiàn)幾種常見得進(jìn)程調(diào)度算法, 通過對(duì)幾組進(jìn)程分別使用不同得調(diào)度算法,計(jì)算進(jìn)程得平均周轉(zhuǎn)時(shí)間與平均帶權(quán)周轉(zhuǎn)時(shí)間 , 比較各種算法得性能優(yōu)劣 .實(shí)驗(yàn)內(nèi)容 : 編程實(shí)現(xiàn)如下算法:1、先來先服務(wù)算法 ;2、短進(jìn)程優(yōu)先算法;、時(shí)間片輪轉(zhuǎn)調(diào)度算法。設(shè)計(jì)分析 :程序流程圖 :1、先來先服務(wù)算法開始初始化 PCB,輸入進(jìn)程信息各進(jìn)程按先來先到得順序進(jìn)入就緒隊(duì)列結(jié)束就緒隊(duì)列?運(yùn)行運(yùn)行進(jìn)程所需CPU 時(shí)間取消該進(jìn)程2、短進(jìn)程優(yōu)先算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法實(shí)驗(yàn)代碼 :1. 先來先服務(wù)算法#ncl e iost eam 、hdefi

2、n 20tpedef struc int d;/ 進(jìn)程名int ati e;/進(jìn)程到達(dá)時(shí)間intuntime;/進(jìn)程運(yùn)行時(shí)間f s;v i main( )in amou t, ,, di , hun;fs fn ;cout amou t;for(i 0;iam u t;i+ )cutf i、 id; in f、 a ie; fi、 runim ;for(i=0 ;iamoun ;i+ )/按進(jìn)程到達(dá)時(shí)間得先后排序/如果兩個(gè)進(jìn)程同時(shí)到達(dá), 按在屏幕先輸入得先運(yùn)行fo (j 0;jamou ti1;j+) if( j、 ti efj 1、 time) diao= j、 atm;fj、 atme=

3、+ 、 time ;f+1 、 atime=diao;huan= j 、 d;fj、 id=f j+1 、id;fj+1 、id=hu n;or(i=0;i a ut; i+)cout ”進(jìn)程: fi 、 id”從 f、 time ”開始 ” , ”在 i、 ti +i 、 runtime ”之前結(jié)束。 endl ; i+1、a im =f i、atime+fi 、 unt e;2. 短進(jìn)程優(yōu)先算法#i lude#dfie 5define n m#fi e a 6 35yped sr t ro i PRO D; int a riv _ i e;?um im ;in f ;Pr ; /整數(shù)排序i

4、nt u l (inttm)in , j, em=0 ;?for(i= ;in ;+)?int las X= ; or(j=0; nu i;j+)? if(tmp j tempj+1 )?tem=temp j;? ? ep=tem j+1 ;? temp + e;? l stX= ;? ? if( ls X=1) break ;?return tem 0;/進(jìn)程排序Pro b bble(P o p)? int ,j;?Pro tem =0;?Pro s um ;fo(i 0;in; i+ ) s ipi;? ?for(i=1;i nm; +)? int lstX=1;?fo (j= ;j nm

5、 ;j+)?i( s、 umtim sj+1、s m_t m)? ep=sj;?s =s +1;? ? sj+ =temp ;?lstX= ;? ?if(lastX 1) break;retur s ;vo d SPF (in p)if(n 0)i i,j,k,l, c=0 ;?seqn;?Potemp_seqn;?p tf( 短進(jìn)程優(yōu)先調(diào)度算法SPFn);?pitf(請(qǐng)依次輸入個(gè)進(jìn)程得進(jìn)程號(hào)、到達(dá)時(shí)間與執(zhí)行時(shí)間n”);?pitf( 成員變量用逗號(hào)隔開;進(jìn)程間用回車隔開n );for (i= ; in; i+ ) ? sca f( ”%d,%d, % ”,seqi 、 O_ID, se i、a

6、r ve_ im,&s q、 sum_t m);prin f( 調(diào)度順序就是 );?/初始化 ci tem ; or( =0;i um;i+ )?tmpi seqi 、ar ve_ im ;? ?tc=ubble(te p) ;/tc 就是斷點(diǎn)啊/la 表示對(duì)應(yīng) i 得 p o 得隊(duì)列情況/1 表示未進(jìn)入過隊(duì)列 ,0 表示在隊(duì)列中 ,1 表示被清除了? for (i0; n;i+ )? s i、f g;for(i=0 ; n;i+ )? ?fo( 0;jn;j+) ?f(eqj 、flag != seq 、arrive_ ime=t )?eq 、 lag=0;? ? for( =0;jn; +

7、)temp_s j =sej ;?if(seq j、 lag!=0)? ?tem _seq j 、sum_time max ; ? l=b bb e( mp_s q)、PR _ ;? ?for(j=0;j n;j+)? if(l=se j 、 R_I)? ?k=j;? t =tc+bubble(tem seq) 、 um_ im ;? seq k、f ag=1 ;? ? print ( ”%d,” l);? ?rin”);voimin()?SP (n);3. 時(shí)間片輪轉(zhuǎn)調(diào)度算法頭文件 R、h in lude iostrea i clude nclude str n、 h#n lu etd ib

8、 、h# lu ectype 、h#define M xNu 10 typ de st uct cb/定義進(jìn)程控制塊 r ame Max m ;/進(jìn)程名?nt arrvetime ;/到達(dá)時(shí)間?int?itit rutime ;/運(yùn)行時(shí)間who e e;/固定運(yùn)行時(shí)間inis im ;/完成時(shí)間d uble eig tTime; / 周轉(zhuǎn)時(shí)間doub eWeig hol ime;chr state ;/運(yùn)行后得狀態(tài)/ 帶權(quán)周轉(zhuǎn)時(shí)間?stuct cb *n xt;P ;/全局變量 t ;double Su WT;duble um WT ;duble rageW ;/ 實(shí)際進(jìn)程數(shù)/周轉(zhuǎn)時(shí)間之與/帶

9、權(quán)周轉(zhuǎn)時(shí)間之與/平均周轉(zhuǎn)時(shí)間doble Avtype ergeWWT ;/平均帶權(quán)周轉(zhuǎn)時(shí)間truct/定義隊(duì)列 ,封裝頭結(jié)點(diǎn) ,指針分別指向隊(duì)頭與隊(duì)尾PCBfront,*rear;queue;quu i i()/進(jìn)程隊(duì)列置空?u u *ead;h ad(q eue*)ma loc(s zof(q eue);ead- fron NU ;hea -rear NULL;rturn head ; nt e py(qu ue *e) /檢驗(yàn)隊(duì)列就是否為空?et rn( head rot?0:);ueu *appe d(queue *head, har c axNum , nta,int r , ar s

10、)/進(jìn)程隊(duì)列入隊(duì),往后插入?PCBp;p=(PC ) mallo ( izeof ( PCB ));?srcpy (p Na , );p ivet e= ;p runtim =;?p ol tme r ;?state=s ;?/ p inish m=0 ;/p egh Time 0;/p e htWholeTime= ;pne t=NULL ;?if(e ty( ead)?he -fron ead rear=p;? se? h adrear n x =p;? he drea p;?eturn h a; u creat( ueue hed)/創(chuàng)建進(jìn)程隊(duì)列?har cM xum ;?car s=R

11、;?int a , r, i;?prntf( 請(qǐng)輸入共有幾個(gè)進(jìn)程:n);?sca f(%d, N);?f r( 1; =N;i+)?r t( ”請(qǐng)輸入第 %d 個(gè)進(jìn)程得進(jìn)程名 :n,i );?g cha ();?gts(c );?prntf( 請(qǐng)輸入第 d 個(gè)進(jìn)程得到達(dá)時(shí)間:n”, i);?scanf( ”,&a);?pintf( 請(qǐng)輸入第 %d 個(gè)進(jìn)程得服務(wù)時(shí)間 :n, ) ; c nf(%d ”,&r);head=appe d(head, ,a,r , );?etu n head;vo d prn( que e head)/輸入創(chuàng)建得進(jìn)程隊(duì)列PCBp;=head ro t;?if(!p)?

12、rit( ”時(shí)間片輪轉(zhuǎn)調(diào)度隊(duì)列為空!n);wi( p)? i tf(”Name=%s arr v ime= druntime,p st te ); utime=%dstate=%c”,Name ,p a i e me ,p ? pri ( ” ”); p=p next;?/* * * * *時(shí)間片輪轉(zhuǎn)法調(diào)度算法得實(shí)現(xiàn)* * * * * */v iRR(q ee ad,int q)?int=head ontarrivetime,lthead- rea r iv time;?f(head ront nt q)?=t+he d-f ontrunti ;else?=t+q;?/ *進(jìn)程隊(duì)列為不空才可調(diào)

13、度* */wile(!em t(he )? PB *p ,p; rinf( n”時(shí)刻進(jìn)程運(yùn)行后得狀態(tài)n”); *第一種情況 :當(dāng)前運(yùn)行得時(shí)間小于最后一個(gè)進(jìn)程到達(dá)時(shí)間做一下操作 / ?whl(tfront ;?pri tf( %2 %s”,1- Nam ) ;?p1-ru time p1r nime q;/ 1、運(yùn)行時(shí)間小于 ,刪除隊(duì)首if (p1 runtim =0)? ?1- stat = ;?p n (% n”,p1- ate);? 1Fin sh ime=t ;? 1- ei hTime p1-F nish ime p1- ari e me;? p1Wei h WholeTi e=p1

14、We gT me/p1 wholetim ; umW += 1- Weigt i e;?um T+= WeightW ol i e;?pintf( 時(shí)刻 %2進(jìn)程 %s 運(yùn)行結(jié)束,進(jìn)程周轉(zhuǎn)時(shí)間= 5、2f,帶權(quán)周轉(zhuǎn)時(shí)間 =%5 、2fn, t,p a,p Na ,p1 We Time,p1-We htWholeTi e);? ?hedfr nt 1- n t;?fee(p1 );? ?/2、運(yùn)行時(shí)間大于 ,向后找位置插入?lse?printf (n”,1 state );? p2=p1-ne t;w l(p2- ext p2-a rivet me !=)? ? ?p2 p2 ext;? ? ?

15、此時(shí)無新進(jìn)入隊(duì)列得進(jìn)程 ,有兩種情況 :1 、不用找位置往后插入 ,隊(duì)首不變 ,不做操作/、找位置往后插入?if( 2ar vetime!= t)? ?B * 3= 1,*p4;?whi e(p - nxt & p3- ar ivtiet)? ?4=p3;? ?p=p3 next ;? ? (p3 arrivetime t)?if(p4! )/p1 插在 4 后,頭為 1-ne t? ?head-front=p1 nex ;p1-n tp4- next;? ?p4- ex =p1;? ?ese /不做操作? p4=p3 p2=NULL;? ?else? ?p4= 3 p2=NULL; ? ?/

16、此時(shí)有新進(jìn)入隊(duì)列得進(jìn)程時(shí) : 插在新進(jìn)入隊(duì)列得進(jìn)程 p2 后,隊(duì)首為 1- xt ?ese? ? ?head on =p1- xt;?p1n xt=p2 net;? p-ne t=p ;? /時(shí)刻變化if(head font runt me=lt)?p1=head front ;? nf(”%2d% ,t,1- ame );? 1ru im =p1-r nt me-q;? /、運(yùn)行時(shí)間小于 0,刪除隊(duì)首? i(p -unt mest te);?p1-F nishTi =t;?pWeig tTime=p in hT me p1 arrivet me;?p1ol ime= Weig time/p1

17、 wholetime;S mWT+=p1 WeightTim ;? ?umWWT+= 1- ei h Whole ime ;printf( 時(shí)刻” %進(jìn)程運(yùn)行結(jié)束 , 進(jìn)程 s 周轉(zhuǎn)時(shí)間 %5、2f, 帶權(quán)周轉(zhuǎn)時(shí)間 =%5 、 n”,p1 Name, 1-N me, Weig tTime, 1 W ig tWho eTime ) ;? ?/pr nf( ”時(shí)刻 2d 進(jìn)程 s 運(yùn)行結(jié)束 ,t, 1 ame );?e fro t=p next;? ?ree (p1); ?/2 、運(yùn)行時(shí)間大于0,直接插在隊(duì)尾?els ?prin f(%cn ,p1- tte) ;? ?/若原隊(duì)列只有一個(gè)進(jìn)程 ,不

18、必往隊(duì)尾插? if(! p1 e)? ?ed ront=p1;? /若原隊(duì)列有多個(gè)進(jìn)程? ele?ead fro t=p1 next ;?h re r-ex p1;?ead rear= 1;? ?p1- ext=NULL ;? ?/時(shí)刻變化,隊(duì)列為空時(shí)不做時(shí)刻變化if( mpt ( h ad)? rurn ;? e se? ?if( had-fr nt- runti eq)? ?t=t head-f ont-r ime;?el e?t=t+q ;? ?/* 第二種情況結(jié)束 * * */?主程序 Main 、cpp#incl de#i cluestd o、 h#n lud sring 、h#inclu e stdl b、h#incl de cyp 、h#incl e ”RR、hvoidmain()?que *hea ;itq;?ead=in t();h adc at(head );?r n f( n 您輸入得時(shí)間片輪轉(zhuǎn)進(jìn)程隊(duì)列為:”);print(head);?r t請(qǐng)輸入時(shí)間片輪轉(zhuǎn)調(diào)度得時(shí)間片為:);scan ( ”%d”,q) ;?/ 時(shí)間片輪轉(zhuǎn)調(diào)度?( head ,q);AerageWT um

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論