和SJF進(jìn)程調(diào)調(diào)算法_第1頁(yè)
和SJF進(jìn)程調(diào)調(diào)算法_第2頁(yè)
和SJF進(jìn)程調(diào)調(diào)算法_第3頁(yè)
和SJF進(jìn)程調(diào)調(diào)算法_第4頁(yè)
和SJF進(jìn)程調(diào)調(diào)算法_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(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)告一班級(jí):08網(wǎng)絡(luò)工程 一、 實(shí)驗(yàn)?zāi)康耐ㄟ^這次實(shí)驗(yàn),加深對(duì)進(jìn)程概念的理解,進(jìn)一步掌握進(jìn)程狀態(tài)的轉(zhuǎn)變、進(jìn)程調(diào)度的策略及對(duì)系統(tǒng)性能的評(píng)價(jià)方法。二、 實(shí)驗(yàn)內(nèi)容設(shè)計(jì)程序模擬進(jìn)程的先來先服務(wù)FCFS和短作業(yè)優(yōu)先SJF調(diào)度過程。假設(shè)有n個(gè)進(jìn)程分別在T1, ,Tn時(shí)刻到達(dá)系統(tǒng),它們需要的服務(wù)時(shí)間分別為S1, ,Sn。分別采用先來先服務(wù)FCFS和短作業(yè)優(yōu)先SJF進(jìn)程調(diào)度算法進(jìn)行調(diào)度,計(jì)算每個(gè)進(jìn)程的完成時(shí)間、周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間,并且統(tǒng)計(jì)n個(gè)進(jìn)程的平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間。三、 要求程序要求:1)進(jìn)程個(gè)數(shù)n;每個(gè)進(jìn)程的到達(dá)時(shí)間T1, ,Tn和服務(wù)時(shí)間S1, ,Sn;選擇算法1-FCFS,2

2、-SJF。2)要求采用先來先服務(wù)FCFS和短作業(yè)優(yōu)先SJF分別調(diào)度進(jìn)程運(yùn)行,計(jì)算每個(gè)進(jìn)程的周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間,并且計(jì)算所有進(jìn)程的平均周轉(zhuǎn)時(shí)間和帶權(quán)平均周轉(zhuǎn)時(shí)間;3)輸出:要求模擬整個(gè)調(diào)度過程,輸出每個(gè)時(shí)刻的進(jìn)程運(yùn)行狀態(tài),如“時(shí)刻3:進(jìn)程B開始運(yùn)行”等等;4)輸出:要求輸出計(jì)算出來的每個(gè)進(jìn)程的周轉(zhuǎn)時(shí)間、帶權(quán)周轉(zhuǎn)時(shí)間、所有進(jìn)程的平均周轉(zhuǎn)時(shí)間以及帶權(quán)平均周轉(zhuǎn)時(shí)間。實(shí)驗(yàn)要求1)上機(jī)前認(rèn)真復(fù)習(xí)FCFS和SJF進(jìn)程調(diào)度調(diào)度算法,熟悉進(jìn)程調(diào)度的執(zhí)行過程;2)上機(jī)時(shí)獨(dú)立編程、調(diào)試程序;3)根據(jù)具體實(shí)驗(yàn)要求,完成好實(shí)驗(yàn)報(bào)告(包括實(shí)驗(yàn)的目的、內(nèi)容、要求、源程序、實(shí)例運(yùn)行結(jié)果截圖、發(fā)現(xiàn)的問題以及解決方法)。四、

3、 源程序#include<iostream>#include<fstream>#include<iomanip>using namespace std; void FCFS();void SJF(); static const int MaxNum=100;int ArrivalTimeMaxNum;/到達(dá)時(shí)間int ServiceTimeMaxNum;/服務(wù)時(shí)間int FinishTimeMaxNum;/完成時(shí)間int WholeTimeMaxNum;/周轉(zhuǎn)時(shí)間double WeightWholeTimeMaxNum;/帶權(quán)周轉(zhuǎn)時(shí)間double Avera

4、geWT_FCFS,AverageWT_SJF; /平均周轉(zhuǎn)時(shí)間double AverageWWT_FCFS,AverageWWT_SJF;/平均帶權(quán)周轉(zhuǎn)時(shí)間int ServiceTime2MaxNum;/用于計(jì)算SJF的量int Data=0;int PNum=0;int NowTime=0;double x=0,y=0;int i;void main()int a;cout<<"請(qǐng)輸入進(jìn)程個(gè)數(shù):"cin>>PNum;for(i=0;i<PNum;i+) cout<<"請(qǐng)輸入第"<<i+1<&

5、lt;"個(gè)進(jìn)程的到達(dá)時(shí)間:"<<endl;cin>>Data;ArrivalTimei=Data;for( i=0;i<PNum;i+)cout<<"請(qǐng)輸入第"<<i+1<<"個(gè)進(jìn)程的服務(wù)時(shí)間:"<<endl;cin>>Data;ServiceTimei=Data;ServiceTime2i=Data;cout<<"請(qǐng)選擇要計(jì)算的類型1-FCFS,2-SJF"cin>>a;if(a=1) FCFS();

6、elseSJF();void FCFS()cout<<"-"<<endl;cout<<" "<<"FCFS"<<" "<<endl;cout<<"-"<<endl;for(i=0;i<PNum;i+) if(ArrivalTimei>NowTime)NowTime=ArrivalTimei;NowTime+=ServiceTimei;FinishTimei=NowTime;WholeTim

7、ei=FinishTimei-ArrivalTimei;WeightWholeTimei=(double)WholeTimei/ServiceTimei;for(i=0;i<PNum;i+)x+=WholeTimei;y+=WeightWholeTimei;AverageWT_FCFS=x/PNum;AverageWWT_FCFS=y/PNum;for(i=0;i<PNum;i+)cout<<"時(shí)刻"<<FinishTimei-ServiceTimei<<":進(jìn)程"<<i+1<<&q

8、uot;開始運(yùn)行"<<endl;cout<<"周轉(zhuǎn)時(shí)間:"<<" "<<"帶權(quán)周轉(zhuǎn)時(shí)間"<<endl;for(i=0;i<PNum;i+)cout<<" "<<WholeTimei<<setprecision(3)<<" "<<WeightWholeTimei<<setprecision(3)<<endl;cout<<&quo

9、t;平均周轉(zhuǎn)時(shí)間FCFS:"<<AverageWT_FCFS<<endl;cout<<"平均帶權(quán)周轉(zhuǎn)時(shí)間FCFS:"<<AverageWWT_FCFS<<endl;void SJF() cout<<"-"<<endl;cout<<" "<<"SJF"<<" "<<endl;cout<<"-"<<endl;NowT

10、ime=0; /SJF x=0;y=0;int smallest=0; NowTime+=ServiceTime0; FinishTime0=NowTime;ServiceTime20=1000000;cout<<"時(shí)刻"<<FinishTime0-ServiceTime0<<":進(jìn)程"<<1<<"開始運(yùn)行"<<endl;int allin=0,j,k;for(i=1;i<PNum;i+) k=1;smallest=0;if(allin=0)j=0;whil

11、e(ArrivalTimej<=NowTime&&j<PNum)j+;if(j>=PNum)allin=1;elsej=PNum;j=j-1;while(k<=j)if(ServiceTime2k=0)k+;elseif(ServiceTime2smallest>ServiceTime2k)smallest=k;k+;ServiceTime2smallest=0;NowTime+=ServiceTimesmallest;FinishTimesmallest=NowTime;cout<<"時(shí)刻"<<Fini

12、shTimesmallest-ServiceTimesmallest<<":進(jìn)程"<<smallest+1<<"開始運(yùn)行"<<endl;for(i=0;i<PNum;i+) WholeTimei=FinishTimei-ArrivalTimei;WeightWholeTimei=(double)WholeTimei/ServiceTimei;cout<<"周轉(zhuǎn)時(shí)間"<<" "<<"帶權(quán)周轉(zhuǎn)時(shí)間"<&l

13、t;endl;for(i=0;i<PNum;i+)cout<<" "<<WholeTimei<<setprecision(3)<<" "<<WeightWholeTimei<<setprecision(3)<<endl;for(i=0;i<PNum;i+)x+=WholeTimei;y+=WeightWholeTimei;AverageWT_SJF=x/PNum;AverageWWT_SJF=y/PNum;cout<<"平均周轉(zhuǎn)時(shí)間SJF:"<<AverageWT_SJF<<endl;cout<<"平均帶權(quán)周轉(zhuǎn)時(shí)間SJF:"<<AverageWWT_SJF<<endl;五、 結(jié)果截圖六、 發(fā)現(xiàn)的問題及解決方法在編程的過程中,發(fā)現(xiàn)的問題還是不少的,尤其是寫SJF算法的時(shí)候,以前數(shù)組用的比

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論