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

下載本文檔

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

文檔簡介

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

2、轉(zhuǎn)時間和帶權(quán)周轉(zhuǎn)時間,并且計算所有進(jìn)程的平均周轉(zhuǎn)時間和帶權(quán)平均周轉(zhuǎn)時間;3輸出:要求模擬整個調(diào)度過程,輸出每個時刻的進(jìn)程運行狀態(tài),如“時刻3:進(jìn)程B開始運行等等;4輸出:要求輸出計算出來的每個進(jìn)程的周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間、所有進(jìn)程的平均周轉(zhuǎn)時間以及帶權(quán)平均周轉(zhuǎn)時間.實驗要求:1)上機(jī)前認(rèn)真復(fù)習(xí)時間片輪轉(zhuǎn)RR進(jìn)程調(diào)度調(diào)度算法,熟悉進(jìn)程調(diào)度的執(zhí)行過程;2)上機(jī)時獨立編程、調(diào)試程序;3)根據(jù)具體實驗要求,完成好實驗報告(包括實驗的目的、內(nèi)容、要求、源程序、實例運行結(jié)果截圖、發(fā)現(xiàn)的問題以及解決方法)【實驗分析】需求分析:(1)按提示輸入進(jìn)程個數(shù),不得大于MaxNum;依次輸入進(jìn)程隊列標(biāo)識,到達(dá)時間,效

3、勞時間,一個進(jìn)程占一行;輸入時間片的大小.(2)輸出的形式:先輸出時刻,正在運行的進(jìn)程,再總的輸出所有進(jìn)程的完成時間,周轉(zhuǎn)時間,帶權(quán)周轉(zhuǎn)時間.最后輸出平均周轉(zhuǎn)時間與平均帶權(quán)周轉(zhuǎn)時間.(3)程序所能到達(dá)的功能:根據(jù)時間片輪轉(zhuǎn)RR進(jìn)程調(diào)度調(diào)度算法調(diào)度進(jìn)程運行,模擬整個調(diào)度過程,計算每個進(jìn)程的周轉(zhuǎn)時間和帶權(quán)周轉(zhuǎn)時間,并且計算所有進(jìn)程的平均周轉(zhuǎn)時間和帶權(quán)平均周轉(zhuǎn)時間.(4)測試數(shù)據(jù):輸入數(shù)據(jù)分別為:5a04b13d32e441輸出為:時刻0:進(jìn)程a開始運行時刻1:進(jìn)程b開始運行時刻2:進(jìn)程a開始運行時刻3:進(jìn)程c開始運行時刻4:進(jìn)程b開始運行時刻5:進(jìn)程d開始運行時刻6:進(jìn)程a開始運行時刻7:進(jìn)程e開

4、始運行時刻8:進(jìn)程c開始運行時刻9:進(jìn)程b開始運行時刻10:進(jìn)程d開始運行時刻11:進(jìn)程a開始運行時刻12:進(jìn)程e開始運行時刻13:進(jìn)程c開始運行時刻14:進(jìn)程e開始運行時刻15:進(jìn)程c開始運行時刻16:進(jìn)程e開始運行時刻17:進(jìn)程c開始運行c的完成時間為18周轉(zhuǎn)時間為16帶權(quán)周轉(zhuǎn)時間為3.2d的完成時間為11周轉(zhuǎn)時間為18帶權(quán)周轉(zhuǎn)時間為4e的完成時間為17周轉(zhuǎn)時間為13帶權(quán)周轉(zhuǎn)時間為3.25平均周轉(zhuǎn)時間11.6平均帶權(quán)周轉(zhuǎn)時間3.29輸入數(shù)據(jù)分別為:5a04b13c25d32e444輸出為:時刻0:進(jìn)程a開始運行時刻4:進(jìn)程b開始運行時刻7:進(jìn)程c開始運行時刻11:進(jìn)程d開始運行時刻13:進(jìn)

5、程c開始運行時刻14:進(jìn)程e開始運行c的完成時間為18周轉(zhuǎn)時間為16帶權(quán)周轉(zhuǎn)時間為3.2d的完成時間為13周轉(zhuǎn)時間為10帶權(quán)周轉(zhuǎn)時間為5e的完成時間為17周轉(zhuǎn)時間為13帶權(quán)周轉(zhuǎn)時間為3.25平均周轉(zhuǎn)時間9.8平均帶權(quán)周轉(zhuǎn)時間2.89概要設(shè)計:(1)本程序中用到的抽象數(shù)據(jù)類型的定義:classprocesspublic:charname;/標(biāo)識intArrivalTime;/到達(dá)時間intServiceTime;/效勞時間intFinishTime;/完成時間intWholeTime;/周轉(zhuǎn)時間doubleWeightWholeTime;/帶權(quán)周轉(zhuǎn)時間intPServiceTime;/剩余的效勞

6、時間;/表示一個進(jìn)程的類主程序的流程:輸入進(jìn)程個數(shù)=»輸入進(jìn)程,到達(dá)時間,效勞時間=?輸入時間片=»按到達(dá)時間的前后放入進(jìn)程數(shù)組中=»將分別第一個進(jìn)程參加等待序列=»將隊首進(jìn)程壓出等待序列=?判斷是否所有元素都參加過等待序列,假設(shè)沒有,將其中序號最小的元素壓入等待序列=»判斷被壓出的元素的剩余效勞時間是否小于時間片=?假設(shè)大于,總的完成時間為之前的時間片的時間,并將次進(jìn)程壓入序列尾部;假設(shè)小于或等于,完成時間為之前總的完成時間加剩余效勞時間,/找到進(jìn)程在進(jìn)程數(shù)組中的位置,修改其完成時間=?輸出完成時間,周轉(zhuǎn)時間,帶權(quán)周轉(zhuǎn)時間=»輸出平

7、均周轉(zhuǎn)時間與平均帶權(quán)周轉(zhuǎn)時間(3)各程序模塊之間的層次(調(diào)用)關(guān)系.主程序調(diào)用輸入模塊,進(jìn)程進(jìn)等待隊列模塊,計算完成時間,周轉(zhuǎn)時間,帶權(quán)周轉(zhuǎn)時間模塊詳細(xì)設(shè)計實現(xiàn)程序模塊的具體算法.#include<iostream>#include<queue>usingnamespacestd;constintMaxNum=100;/進(jìn)程個數(shù)的最大值classprocesspublic:charname;intArrivalTime;intServiceTime;intFinishTime;intWholeTime;doubleWeightWholeTime;intPServiceT

8、ime;);/表示一個進(jìn)程的類,包括其標(biāo)識,到達(dá)時間,效勞時間,完成時間,周轉(zhuǎn)時間,帶權(quán)周轉(zhuǎn)時間,以及剩余的效勞時間processprMaxNum;/進(jìn)程數(shù)組voidmain()queue<process>L1;/表示等待隊歹Ucout<<"輸入進(jìn)程個數(shù)"<<endl;intlen;/表示進(jìn)程個數(shù)cin>>len;cout<<"依次輸入進(jìn)程隊列標(biāo)識,到達(dá)時間,效勞時間"<<endl;for(inti=0;i<len;+i)/輸入進(jìn)程隊列標(biāo)識,到達(dá)時間,服務(wù)時間,并把進(jìn)程參加進(jìn)程

9、數(shù)組,初始的剩余效勞時間等于效勞時間processa;cin>>>>a.ArrivalTime>>a.ServiceTime;a.PServiceTime=a.ServiceTime;pri=a;)intq;/表示時間片cout<<"輸入時間片"<<endl;cin>>q;先將第一個進(jìn)程參加等待序列L1.push(pr0);/intsum=0;/總的完成時間intn=1;/記錄參加等待序列的是數(shù)組中的第幾個元素inty=0;while(L1.empty()!=1)/等待序列不為空,那么循環(huán)p

10、rocessb=L1.front();/提出等待序列的首元素,并壓出序列L1.pop();cout<<"時刻"<<sum<<":進(jìn)程"<<<<開始運行"<<endl;if(q<b.PServiceTime)/判斷被壓出的元素的剩余效勞時間是否小于時間片b.PServiceTime=b.PServiceTime-q;/假設(shè)大于,總的完成時間為之前的時間片的時間,并將次進(jìn)程壓入序列尾部,剩余時間sum=sum+q;if(n<len)/判斷是否所有元素都參

11、加過等待序列,假設(shè)沒有,將其中序號最小的元素壓入等待序列while(!(prn.ArrivalTime>sum)&&n<len)等待序列中的元素的到達(dá)時間時候小于現(xiàn)在的時間L1.push(prn);n+;)L1.push(b);)else/假設(shè)小于或等于,完成時間為之前總的完成時間加剩余服務(wù)時間sum=sum+b.PServiceTime;b.FinishTime=sum;for(intp=0;p<len;p+)/找到進(jìn)程在進(jìn)程數(shù)組中的位置,修改其完成時間if(=)prp=b;)if(n<len)/判斷是否所有元素都參加過等待

12、序列,假設(shè)沒有,將其中序號最小的元素壓入等待序列while(!(prn.ArrivalTime>sum)&&n<len)L1.push(prn);n+;)intWT=0;/總的周期時間doubleWWT=0;/總的帶權(quán)周期時間for(intk=0;k<len;+k)processb=prk;b.WholeTime=b.FinishTime-b.ArrivalTime;周轉(zhuǎn)時間為完成時間減到達(dá)時間WT=WT+b.WholeTime;b.WeightWholeTime=double(b.WholeTime)/b.ServiceTime;帶權(quán)周轉(zhuǎn)時間為周轉(zhuǎn)時間除以效

13、勞時間WWT=WWT+b.WeightWholeTime;cout<<<<的完成時間為"<<b.FinishTime<<"周轉(zhuǎn)時間為"<<b.WholeTime<<"帶權(quán)周轉(zhuǎn)時間為"<<b.WeightWholeTime<<endl;cout<<""<<endl;cout<<"平均周轉(zhuǎn)時間"<<double(WT)/len<<endl;平均

14、周轉(zhuǎn)時間為總周轉(zhuǎn)時間除以進(jìn)程數(shù)cout<<"平均帶權(quán)周轉(zhuǎn)時間"<<double(WWT)/len<<endl;/平均帶權(quán)周轉(zhuǎn)時間為總帶權(quán)周轉(zhuǎn)時間除以進(jìn)程數(shù))調(diào)試分析1、 執(zhí)行算法問前,要先創(chuàng)立抽象數(shù)據(jù)類型processo2、 執(zhí)行算法時,要注意判斷被壓出的元素的剩余效勞時間是否小于時間片.3、 執(zhí)行算法后,改變了進(jìn)程的完成時間,要將修改后的參加到進(jìn)程數(shù)組中.4、 時間的復(fù)雜度是O(n*m).用戶使用說明先輸出時刻,正在運行的進(jìn)程,再輸出進(jìn)程的完成時間,周轉(zhuǎn)時間,帶權(quán)周轉(zhuǎn)時間.按提示信息依次輸入.測試結(jié)果輸入數(shù)據(jù)分別為:5a04b13c25

15、d32e441輸出為:時刻0:進(jìn)程a開始運行時刻1:進(jìn)程b開始運行時刻2:進(jìn)程a開始運行時刻3:進(jìn)程c開始運行時刻4:進(jìn)程b開始運行時刻5:進(jìn)程d開始運行時刻6:進(jìn)程a開始運行時刻7:進(jìn)程e開始運行時刻8:進(jìn)程c開始運行時刻9:進(jìn)程b開始運行時刻10:進(jìn)程d開始運行時刻11:進(jìn)程a開始運行時刻12:進(jìn)程e開始運行時刻13:進(jìn)程c開始運行時刻14:進(jìn)程e開始運行時刻15:進(jìn)程c開始運行時刻16:進(jìn)程e開始運行時刻17:進(jìn)程c開始運行a的完成時間為12周轉(zhuǎn)時間為12帶權(quán)周轉(zhuǎn)時間為3d的完成時間為11周轉(zhuǎn)時間為18帶權(quán)周轉(zhuǎn)時間為4e的完成時間為17周轉(zhuǎn)時間為13帶權(quán)周轉(zhuǎn)時間為3.25平均周轉(zhuǎn)時間11

16、.6平均帶權(quán)周轉(zhuǎn)時間3.29輸入數(shù)據(jù)分別為:5a04b13c25d32e444輸出為:時刻0:進(jìn)程a開始運行時刻4:進(jìn)程b開始運行時刻7:進(jìn)程c開始運行時刻11:進(jìn)程d開始運行時刻13:進(jìn)程c開始運行時刻14:進(jìn)程e開始運行a的完成時間為4周轉(zhuǎn)時間為4帶權(quán)周轉(zhuǎn)時間為1d的完成時間為13周轉(zhuǎn)時間為10帶權(quán)周轉(zhuǎn)時間為5e的完成時間為17周轉(zhuǎn)時間為13帶權(quán)周轉(zhuǎn)時間為3.25平均周轉(zhuǎn)時間9.8平均帶權(quán)周轉(zhuǎn)時間2.89D'接作系給實驗報告Dwbug0:驗二片可14J3524R1234An一丁一丁一丁一J一丁一丁一丁一丁丁一丁國耳回以5®囹圜齷赳般鰭帽攤附鼐A口臺臺八口ACMnA口A口ACMCM=xy力八力力支支支f%l7,丁r,t>-t>fM.l一1HHMnHMnuRMRMauuuHHMMBnHUnnn入,一開開開開開開開.不詡?cè)招∮藐栍胑nen1.震擊震裝群震注進(jìn)進(jìn)進(jìn)進(jìn)進(jìn)進(jìn)進(jìn)時01234567T.01234561789111,11兀亥亥亥亥亥、幺亥亥亥亥亥亥亥亥亥亥亥丁二、OnUMBB口口ab的完成時間為1口周轉(zhuǎn)時間?9帶權(quán)周轉(zhuǎn)時間為3的完成時間為18周轉(zhuǎn)時舊為16帝權(quán)周轉(zhuǎn)日二間為3.2的完成時間為11周轉(zhuǎn)時間為8帶權(quán)周轉(zhuǎn)時間為4«»MWWMWOK的完成時間為致周轉(zhuǎn)時間為13帶權(quán)周轉(zhuǎn)H間為3.2SpF均周轉(zhuǎn)時間11.

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論