短作業(yè)優(yōu)先調(diào)度_第1頁
短作業(yè)優(yōu)先調(diào)度_第2頁
短作業(yè)優(yōu)先調(diào)度_第3頁
短作業(yè)優(yōu)先調(diào)度_第4頁
短作業(yè)優(yōu)先調(diào)度_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)一進(jìn)程調(diào)度一、實(shí)驗(yàn)?zāi)康木帉懖⒄{(diào)試一個(gè)模擬的進(jìn)程調(diào)度程序,以加深對進(jìn)程的概念及進(jìn)程調(diào)度算法 的理解.二、實(shí)驗(yàn)內(nèi)容1 .采用“短進(jìn)程優(yōu)先”調(diào)度算法對五個(gè)進(jìn)程進(jìn)行調(diào)度。每個(gè)進(jìn)程有一個(gè)進(jìn) 程控制塊(PCB)表示。進(jìn)程控制塊可以包含如下信息:進(jìn)程名、到達(dá) 時(shí)間、需要運(yùn)行時(shí)間、已用CPU時(shí)間、進(jìn)程狀態(tài)等等。2 .每個(gè)進(jìn)程的狀態(tài)可以是就緒W (Wait).運(yùn)行R (Run)、或完成F (Finish) 三種狀態(tài)之一。每進(jìn)行一次調(diào)度程序都打印一次運(yùn)行進(jìn)程、就緒隊(duì)列、 以及各個(gè)進(jìn)程的PCB,以便進(jìn)行檢查。重復(fù)以上過程,直到所要進(jìn)程都 完成為止。三、實(shí)現(xiàn)思路主函數(shù)-輸入函數(shù)-短作業(yè)優(yōu)先調(diào)度函數(shù)-輸出函數(shù)。這是

2、一條最基礎(chǔ)的思路。輸入函數(shù)使用文本導(dǎo)入完成數(shù)據(jù)輸入,輸出函數(shù)輸 出調(diào)度結(jié)杲,主函數(shù)完成各子函數(shù)連接,最主要的是短作業(yè)優(yōu)先的調(diào)度函數(shù)。我 想到的方法就是排序,不斷選擇需要運(yùn)行時(shí)間最短的作業(yè),接著進(jìn)行數(shù)據(jù)輸入計(jì) 算輸出等,遍歷全部數(shù)據(jù)并完成調(diào)度。四、主要的數(shù)據(jù)結(jié)構(gòu)struct Proccss_structintarrivetime;到達(dá)時(shí)間intservertime;開始運(yùn)行時(shí)間intfinishtimc;運(yùn)行結(jié)束時(shí)間intruntime;運(yùn)行時(shí)間intrunflag;調(diào)度標(biāo)志intorder;運(yùn)行次序char namcMaxNum;進(jìn)程名稱double weigh Iwholctimc; / /

3、 周轉(zhuǎn)時(shí)間double avcragcxvrt_FCFS,avcragcwt_SJF;平均周轉(zhuǎn)時(shí)間double apragcxvwt_FCFS,avcragcwwt_SJF; /平均帶權(quán)周轉(zhuǎn)時(shí)間 proNIaxNum;五、算法流程圖六、運(yùn)行與測試用書上數(shù)據(jù)對程序進(jìn)行測試,結(jié)果如下:4 3 4 2 40 12 3 4A B c D E擲3333.txt -記事本國 qwer.cppk E :vc+ca o zu oxi-tongDebug qvzer.exe主菜單1使用短作業(yè)優(yōu)先0退出輸入你想進(jìn)行的操作:1對迸程用短作業(yè)優(yōu)先調(diào)度*請輸入進(jìn)程個(gè)數(shù):進(jìn)程名稱到達(dá)運(yùn)行開始運(yùn)行 結(jié)束 執(zhí)行順序 周轉(zhuǎn) 帶

4、權(quán)周轉(zhuǎn)173auerage_turno un d._t inei*=7.80weight_auerage_t ui*n_i*ound_t imer=2 -23另外隨便添加一些數(shù)據(jù)進(jìn)行測試,結(jié)杲如下:11111. txt-記事本文件焉輯(E)格式9)查看BCDEF6 53 94 45 147 31 6西 qwer.cppLlavepage.674228開始運(yùn)行對進(jìn)程用短作業(yè)優(yōu)先調(diào)度。輸入你想進(jìn)行的操作:1口 退出1使用短作業(yè)優(yōu)先 E!vc4-+-caozuoxitongDebugqv/er.exeH王平單7082919 4 413 4 5請輸入進(jìn)程個(gè)數(shù):區(qū)程名稱到達(dá)運(yùn)行結(jié)束197316_turn

5、_jfoiind71timer=15執(zhí)行順序周轉(zhuǎn)413.0025.0010.0037.003.006.00帶權(quán)周轉(zhuǎn)2.602.782.502.641.001.00代碼實(shí)現(xiàn):#includc #includc #dcfinc MaxNum 10() using namespace std;struct Proccss_struct(char nameMaxNum;/進(jìn)程名稱int arrive time;到達(dá)時(shí)間int scncrtimc;/開始運(yùn)行時(shí)間int finishrimc;運(yùn)行結(jié)束時(shí)間int runtime;運(yùn)行時(shí)間int runflag;調(diào)度標(biāo)志int order;運(yùn)行次序doubl

6、e wciitwholctimc;/周轉(zhuǎn)時(shí)間double avcrage*t_FCFSr;ivcragrvt_SJ F;/平均周轉(zhuǎn)時(shí)間double avuragBWt_FCFS,avtragpwwjSJF; 平均帶權(quán)周轉(zhuǎn)時(shí)間 proMaxNum;nt N; 實(shí)際進(jìn)程個(gè)數(shù)intSJFO;短作業(yè)優(yōu)先函數(shù)int SF()int tcmp_timc=O;int i=0 j;int number,temp-counter;進(jìn)程編號(hào),當(dāng)前已執(zhí)行進(jìn)程個(gè)數(shù)float ruii_timc;int min=0;run_timc=proi.run time;j=l;while(j pro i.ninrimc)rui

7、i_timc=pr()p.runrimc;i=j; j+; for(j;jN;j+)whilc(jpr(i.arrivclimc)選出第一個(gè)到達(dá)的進(jìn)程min=j;i=j; j+;numbcr=min;/ 對第一個(gè)到達(dá)的進(jìn)程賦值,計(jì)算profnumber.scnTcrtimc=pronumbcr.arrive time;pronumbcr.finish timc=pronumbcr.scnrcrtimc+pn)numbcr.runtime;pronumbcr.runflag=l;tcmp_timc=pn)numbcr.fiiiishrimc;profnumber .ordcr= 1;tcmp_c

8、ouiitcr= 1;whilc(tcmp_eountcrN)for(j=O;jN;j+)if(proj.arrivctimc=tcmp_timc)&(!pr()i.runflag) run_timu=pn)j .runtime:;numbcr=j;break;選出最短的運(yùn)行for(j=O;jN;j+)時(shí)間(星短作業(yè))if(pn)j.arrivctimc=tcmp_timc)&(!pr()i.runflag) if(pr()j.ruiitimcrun_timc) rmi_timc=proj.run time;numbcr=j;pronumbcr.scn-criimc=tcmp_timc;對最短

9、作業(yè)進(jìn)行賦值,計(jì)算profnumber.finishrimc=pronumbcr.scnrcrtimc+pn)numbcr.nintimc;profnumber.runflag= 1;tcmp_rimc=pronumbcr.finish time;tcmp_countcr+;pr()numbcr.n.wciiwholctimc=(); pron.ordcr=0; pron.runflag=0; fclosc(0; return 0; int outpuiQ/調(diào)度結(jié)果輸出 int i;float turn_round_rimc=0fl ,w=0;printf(”進(jìn)程占稱到達(dá)運(yùn)行開始運(yùn)行結(jié)束執(zhí)行順序周轉(zhuǎn)帶權(quán)周轉(zhuǎn)十); for(i=0N;i+)pro p .weiiholctimc=proi. finish time-pro i .arrive time;fl =prop.wcighi+K)lctimc/pn)f.runtime;tiim_r()und_timc+=pr()i.wcighi3Xh()lctimc;w+=fl;printff,%4s%8d%5d%7d%7d%7d%8.2f%7.2fn,proi .name,propj.arrivetimc,prof.runtime,pro0.s urvurtimu,prci.nishtimu,pro

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論