時間片輪轉(zhuǎn)RR進程調(diào)度算法_第1頁
時間片輪轉(zhuǎn)RR進程調(diào)度算法_第2頁
時間片輪轉(zhuǎn)RR進程調(diào)度算法_第3頁
時間片輪轉(zhuǎn)RR進程調(diào)度算法_第4頁
時間片輪轉(zhuǎn)RR進程調(diào)度算法_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實用標準文案 精彩文檔 實驗二 時間片輪轉(zhuǎn)RR進程調(diào)度算法 【實驗?zāi)康摹?通過這次實驗,加深對進程概念的理解,進一步掌握進程狀態(tài)的 轉(zhuǎn)變、進程調(diào)度的策略及對系統(tǒng)性能的評價方法。 【實驗內(nèi)容】 問題描述: 設(shè)計程序模擬進程的時間片輪轉(zhuǎn) RRRR 調(diào)度過程。假設(shè)有 n n 個進程 分別在T Ti, ,,T Tn時刻到達系統(tǒng),它們需要的服務(wù)時間分別為 S Si, ,S,Sn。分別利用不同的時間片大小 q q ,采用時間片輪轉(zhuǎn) RRRR 進程 調(diào)度算法進行調(diào)度,計算每個進程的完成時間,周轉(zhuǎn)時間和帶權(quán)周轉(zhuǎn) 時間,并且統(tǒng)計 n n 個進程的平均周轉(zhuǎn)時間和平均帶權(quán)周轉(zhuǎn)時間。 程序要求: 1 1 )進程個數(shù)

2、n n;每個進程的到達時間 T Ti, ,,T Tn和服務(wù)時間 S Si, ,,S Sn;輸入時間片大小 q q。 2 2) 要求時間片輪轉(zhuǎn)法 RRRR 調(diào)度進程運行,計算每個進程的周轉(zhuǎn)時 間,帶權(quán)周轉(zhuǎn)時間,并且計算所有進程的平均周轉(zhuǎn)時間,帶權(quán)平均周 轉(zhuǎn)時間; 3 3) 輸出:要求模擬整個調(diào)度過程,輸出每個時刻的進程運行狀態(tài), 如“時刻 3 3 :進程 B B 開始運行”等等; 4 4) 輸出:要求輸出計算出來的每個進程的周轉(zhuǎn)時間,帶權(quán)周轉(zhuǎn)時 間,所有進程的平均周轉(zhuǎn)時間,帶權(quán)平均周轉(zhuǎn)時間。 實用標準文案 精彩文檔 【源程序】 #i nclude #i ncludevioma nip.h #i

3、nclude #in clude #i nclude #i nclude typedef int QEIemType; #defi ne OK 1 #defi ne ERROR 0 #defi ne OVERFLOW -1 typedef int Status; typedef struct QNode QElemType data; struct QNode *n ext; QNode,*QueuePtr; typedef struct QueuePtr front; QueuePtr rear; Lin kQueue; Status In itQueue(L in kQueue &Q);

4、Status DestroyQueue(Li nkQueue & Q); 實用標準文案 精彩文檔 Status En Queue(L in kQueue & Q,QEIemType e); int DeQueue(L in kQueue & Q,QEIemType e); bool QueueEmpty(L in kQueue &Q); static const int MaxNum=100; int n ,q,ArrivalTimeMaxNum,ServiceTimeMaxNum,Fi ni shedTimeMaxNum ,WholeTimeMaxNum; double WeightWhol

5、eTimeMaxNum,Average_WT=0,Average_WWT=0; Lin kQueue Q; void RR(int*ArrivalTime,int*ServiceTime,int n,int q,LinkQueue &Q); void mai n() cout請輸入進程數(shù) n:; cinn; while( n100) coutvv輸入的 n 值不正確,請重新輸入! endl; cinn; coutvv請輸入各個進程的到達時間:; for(i nt i=0;i ArrivalTimei; 實用標準文案 精彩文檔 coutvv請輸入各個進程的服務(wù)時間:; for( i=0;i Se

6、rviceTimei; coutvv請輸入時間片 q:; cinq; while(q200) coutvv輸入的 q 值不正確,請重新輸入! q; RR(ArrivalTime,ServiceTime, n,q,Q); void RR(i nt*ArrivalTime,i nt*ServiceTime,i nt n ,i nt q,L in kQueue & Q) int coun tTime=0,e; int STimeMaxNum,pushedMaxNum; for(i nt i=0;i q) STimee=STimee-q; coun tTime+=q; else coun tTime+

7、=STimee;STimee=O ;Fini shedTimee=co un tTime; while(time0) cout 時刻vvsetw(2)vvtimev: 進程e 正在運行 e ndl; time+; for(i=1;i n;i+) 實用標準文案 精彩文檔 if(STime!=0&i !=e&ArrivalTimei0) En Queue(Q,e); for(i=0;i n ;i+) WholeTimei=Fi nishedTimei-ArrivalTimei; WeightWholeTimei=(double)(WholeTimei*1.000000/ServiceTime i)

8、; Average_WT+=WholeTimei; Average_WWT+=WeightWholeTimei; 實用標準文案 精彩文檔 Average_WT/ =n; Average_WWT/ =n; cout完成: ; for(i=0;i n ;i+) coutsetw(8) Fini shedTimei ; coute ndl; cout周轉(zhuǎn): ; for(i=0;i n ;i+) coutvsetw(8)vWholeTimeivv ; coute ndl; cout帶權(quán): ; for(i=0;i n ;i+) coutvsetw(8)vvsetiosflags(ios:fixed)vv

9、setprecisio n( 2)WeightWhol eTimei ; coute ndl; cout平均周轉(zhuǎn)時間為:vAverage_WTvendl; cout平均帶權(quán)周轉(zhuǎn)時間為:Average_WWT next=NULL; return OK; Status DestroyQueue(Li nkQueue & Q) while(Q.fro nt) Q.rear=Q.fr on t- n ext; free(Q.fro nt); Q.fro nt=Q.rear; return OK; Status En Queue(L in kQueue & Q,QEIemType e) QueuePtr

10、 p=(QueuePtr)malloc(sizeof(QNode); if(!p) exit(OVERFLOW); p-data=e;p-n ext=NULL; 實用標準文案 精彩文檔 Q.rear- n ext=p; Q.rear=p; return OK; int DeQueue(L in kQueue & Q,QEIemType e) QueuePtr p; if(Q.fro nt=Q.rear) return ERROR; p=Q.fr ont-n ext; e=p-data; Q.front-n ext=p-n ext; if(Q.rear=p) Q.rear=Q.fr on t;

11、free(p); return e; bool QueueEmpty(L in kQueue & Q) if(Q.fro nt=Q.rear) return true; else return false;實用標準文案 精彩文檔 【實例截圖】 30 29 2? 2 3.00 3.13 21 19 3.80 的的lift在在在在在在在在在產(chǎn) S S 正正正正正正正正正正正正正正一 井-并-丄000000 0 1 1 0 1 1 222233334444222233334444- -0000- -2333344443 2333344443 用迥-LLL口三口三呂一爭口口壬口S S- -口更口E E

12、口E E口壬口王口主口壬口主口王壬口壬口百口亞口壬口壬口壬口主口王口三口壬壬 一、 一 一 J平HA廣亠3TisZ4=JTild 戶H/tH.4A-Ad4J5T= 戶=4z盧1- I 護 Tla-/厘 7I,=H4 -舟-#-#-=井 i#-井-#-4-#-井-井護-舟-曲吐It-曲為一井#一#一#-一并一 井-曲曲 -粵T 一 2 2 _TA、一工 b- TAf TAf TA * TATATATAX-TA t t 工k TA * TA -W_TA1-_TA k-TAk- TAi 工 1 *TA * TA X-TZ -WTAk- TA Ixw Ixw 012345 012345 678 9 6

13、78 9 0123 0123 4 5 4 5 & & 7890123456 7890123456 7 89 7 89 yyyyyy 11111111 11111111 112222222222112222222222 S 0 1 :6 2 4 8 I U 也 圧 C:Use rsAdm i n istrator. WIN -8M S S610 VP U EDeskto p| 作系疣實蟄 l 實釜 RQEbiugiTim:&巳xh 日一日 BB J t n/ B71:* n :円 _ _ _ -,i- _ - - IJ一 rv十 ,千 -JT HI r r?rJ 圳4制4-刪桿邢石宦玄密麥簾桑棗因冢劇第刃夷參鄉(xiāng)亥亥“吾桑常勿多艮亥、爰聶貳 - 7r*-TJ.:lll 丄:-1-1Lllzr二 1二1二 lT二 * T-l: = ;?丄:-1-*-L;- 二:!二 *二 * 二 gnlF-工 rrr rr ”TT rrr rrr rrr rrr mHH rrr rrr rrr rr i ft ftt r-r mr MHH rrr nHM rrr nn rTr nr rrr -ft rt rr-r ro rrr JJ- 7 ARI -r T T 大-wb - T- T- T- T 丁一 丁一丁一丁

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論