操作系統(tǒng)綜合實驗報告--作業(yè)調(diào)度算法模擬(共10頁)_第1頁
操作系統(tǒng)綜合實驗報告--作業(yè)調(diào)度算法模擬(共10頁)_第2頁
操作系統(tǒng)綜合實驗報告--作業(yè)調(diào)度算法模擬(共10頁)_第3頁
操作系統(tǒng)綜合實驗報告--作業(yè)調(diào)度算法模擬(共10頁)_第4頁
操作系統(tǒng)綜合實驗報告--作業(yè)調(diào)度算法模擬(共10頁)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上設計題目作業(yè)調(diào)度算法模擬小組合作是 ( ) 否( )小組成員張越男一 實驗目的:1. 用高級語言編寫和調(diào)試單道環(huán)境下的作業(yè)調(diào)度的模擬程序,以加深對作業(yè)調(diào)度的理解。單道環(huán)境的特點是被調(diào)度的作業(yè)占有所有資源。2. 在完成了單道環(huán)境的作業(yè)調(diào)度后,有余力的同學可以完成多道環(huán)境下的作業(yè)調(diào)度,多道的特點是:內(nèi)存中可以同時存在一道以上的進程,所有進程共享系統(tǒng)資源,這樣作業(yè)調(diào)度過程中還要考慮資源分配情況。3. 通過兩種環(huán)境下作業(yè)調(diào)度的模擬,比較兩種環(huán)境下作業(yè)調(diào)度的異同,從而達到理解作業(yè)調(diào)度的功能。二 實驗要求:1. 復習作業(yè)調(diào)度的各種算法的思路;2. 認真完成實驗內(nèi)容,并對代碼進行測

2、試;3. 完成實驗報告,并于17周周三之前由學習委員按學號整理好提交給任課教師。4. 實驗報告要求: 實驗目的; 源程序并附注釋; 對測試結(jié)果進行截圖;三 軟硬件環(huán)境:電腦,配置Vc+6.0等軟件環(huán)境四 實驗內(nèi)容:為單道批處理系統(tǒng)設計一個作業(yè)調(diào)度程序,由于單道批處理系統(tǒng)中,作業(yè)一投入運行,它就占有計算機的一切資源知道作業(yè)完成為止,因此調(diào)度作業(yè)時不必考慮它所有的資源是否得到滿足,它所占用的CPU時限等因素。作業(yè)調(diào)度算法:先來先服務調(diào)度算法(FCFS); 短作業(yè)優(yōu)先算法;最高響應比調(diào)度算法; 最高優(yōu)先級調(diào)度算法;輸入:每個作業(yè)包括數(shù)據(jù)項,作業(yè)調(diào)度所需要的數(shù)據(jù)項:作業(yè)名、提交時間、運行時間等。輸出:

3、要求打印每個作業(yè)完成后該作業(yè)的開始運行時間、完成時間、周轉(zhuǎn)時間和平均周轉(zhuǎn)時間?!驹闯绦颉?include using namespace std;struct job char name20; /作業(yè)名 int subtime; /提交時間 int runtime; /運行時間 int stime; /開始時間 int ftime; /完成時間 int ztime; /周轉(zhuǎn)時間 int wtime; /等待時間 double dtime; /帶權(quán)周轉(zhuǎn)時間 double rratio; /響應比;int flag=0;double sumztime,sumdtime;double avgztim

4、e,avgdtime;void input(job*p,int n); /輸入void output(job*p,int n); /輸出void datahandle(job*p,int n); /數(shù)據(jù)處理void sort(job*p,int n); /按提交時間排序void fcfs(job*p,int n); /先來先服務void sjf(job*p,int n); /短作業(yè)優(yōu)先void hrf(job*p,int n); /最高響應比int main() int n; coutendl; cout/*計算機操作系統(tǒng)綜合實驗*/endl; cout/*作業(yè)調(diào)度算法模擬*/endl; co

5、ut/* */endl; cout/*2012年12月18日*/endl; coutn; job*a=new jobn; input(a,n); fcfs(a,n); coutn; sjf(a,n); coutn; hrf(a,n); delete a; return 0;void input(job*p,int n) cout請輸入作業(yè)信息:endlendl; for(int i=0;in;i+) ; coutpi.subtime; pi.subtime=(pi.subtime)/100*60+pi.subtime%100; coutpi.runtime; pi.run

6、time=(pi.runtime)/100*60+pi.runtime%100; coutn; void output(job*p,int n) cout作業(yè)調(diào)度順序:; for(int k=0;kn;k+) ; coutn;coutnametsubtimetruntimetstimetftimetztimetdtimetendl; for(int i=0;in;i+)tpi.subtime/60*100+pi.subtime-pi.subtime/60*60t;coutpi.runtime/60*100+pi.runtime-pi.runtime

7、/60*60t;coutpi.stime/60*100+pi.stime-pi.stime/60*60t;coutpi.ftime/60*100+pi.ftime-pi.ftime/60*60t;coutpi.ztime/60*100+pi.ztime-pi.ztime/60*60t;cout(int)pi.dtime/60*100+pi.dtime-(int)pi.dtime)/60*60endl; cout平均周轉(zhuǎn)時間=avgztimeendl; cout平均帶權(quán)周轉(zhuǎn)時間=avgdtime=1;i-) for(int j=0;jpj+1.subtime) job temp; temp=pj

8、; pj=pj+1; pj+1=temp; void datahandle(job*p,int n) sumztime=sumdtime=0; p0.stime=p0.subtime; p0.ftime=p0.subtime+p0.runtime; for(int i=1;ipi.subtime) pi.stime=pi-1.ftime; pi.ftime=pi-1.ftime+pi.runtime; /*這里要特別小心,剛開始沒考慮到下一個的開始時間可能大于上一個的結(jié)束時間*/ else pi.stime=pi.subtime; pi.ftime=pi.subtime+pi.runtime;

9、 for(int j=0;jn;j+) pj.ztime=pj.ftime-pj.subtime; pj.dtime=pj.ztime*1.0/pj.runtime*1.0; sumztime+=pj.ztime; sumdtime+=pj.dtime; avgztime=sumztime/n; avgdtime=sumdtime/n;void fcfs(job*p,int n) sort(p,n); datahandle(p,n); cout先來先服務調(diào)度算法:endl; output(p,n);void sjf(job*p,int n) sort(p,n); for(int i=0;in-

10、1;i+) int k=0; if(i=0) pi.ftime=pi.subtime+pi.runtime; else pi.ftime=pi.runtime+pi-1.ftime; for(int j=i+1;jn;j+) if(pj.subtime=pi.ftime) k+; double minstime=pi+1.runtime; int ps=i+1; for(int m=i+1;mi+k;m+) if(pm+1.runtimeminstime) minstime=pm+1.runtime; ps=m+1; job temp; temp=pi+1; pi+1=pps; pps=tem

11、p; datahandle(p,n); cout短作業(yè)優(yōu)先算法:endl; output(p,n); void hrf(job*p,int n) sort(p,n); for(int i=0;in-1;i+) int k=0; if(i=0) pi.ftime=pi.subtime+pi.runtime; else pi.ftime=(pi.runtime+pi-1.ftime); for(int j=i+1;jn;j+) if(pj.subtime=pi.ftime) k+; doublemaxrratio=(pi.ftime-pi+1.subtime)/(1.0*pi+1.runtime)

12、; int ps=i+1; for(int m=i+1;m=maxrratio) maxrratio=(pi.ftime-pm+1.subtime)/(1.0*pm+1.runtime);ps=m+1; job temp; temp=pi+1; pi+1=pps; pps=temp; datahandle(p,n); cout最高響應比調(diào)度算法:pi.subtime) pi.stime=pi-1.ftime; pi.ftime=pi-1.ftime+pi.runtime;else pi.stime=pi.subtime; pi.ftime=pi.subtime+pi.runtime;所以在寫代碼之前一定要考慮好各種可

溫馨提示

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

提交評論