短作業(yè)優(yōu)先調(diào)度.doc

短作業(yè)優(yōu)先調(diào)度.doc

ID:51262366

大小:112.36 KB

頁數(shù):8頁

時間:2020-03-20

短作業(yè)優(yōu)先調(diào)度.doc_第1頁
短作業(yè)優(yōu)先調(diào)度.doc_第2頁
短作業(yè)優(yōu)先調(diào)度.doc_第3頁
短作業(yè)優(yōu)先調(diào)度.doc_第4頁
短作業(yè)優(yōu)先調(diào)度.doc_第5頁
資源描述:

《短作業(yè)優(yōu)先調(diào)度.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、實驗一進程調(diào)度一、實驗?zāi)康木帉懖⒄{(diào)試一個模擬的進程調(diào)度程序,以加深對進程的概念及進程調(diào)度算法的理解.二、實驗內(nèi)容1.采用“短進程優(yōu)先”調(diào)度算法對五個進程進行調(diào)度。每個進程有一個進程控制塊(PCB)表示。進程控制塊可以包含如下信息:進程名、到達時間、需要運行時間、已用CPU時間、進程狀態(tài)等等。2.每個進程的狀態(tài)可以是就緒W(Wait)、運行R(Run)、或完成F(Finish)三種狀態(tài)之一。每進行一次調(diào)度程序都打印一次運行進程、就緒隊列、以及各個進程的PCB,以便進行檢查。重復(fù)以上過程,直到所要進程都完成為止。三、實現(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è),接著進行數(shù)據(jù)輸入計算輸出等,遍歷全部數(shù)據(jù)并完成調(diào)度。四、主要的數(shù)據(jù)結(jié)構(gòu)structProcess_struct{charname[MaxNum];//進程名稱intarrivetime;//到達時間intservertime;//開始運行時間intfinishtime;//運行結(jié)束時間intruntime;//運行時間intrunflag;//調(diào)度標志intorder;//運行次

3、序doubleweightwholetime;//周轉(zhuǎn)時間doubleaveragewt_FCFS,averagewt_SJF;//平均周轉(zhuǎn)時間doubleaveragewwt_FCFS,averagewwt_SJF;//平均帶權(quán)周轉(zhuǎn)時間}pro[MaxNum];五、算法流程圖運行程序看菜單,選操作0或110input()輸入導(dǎo)入函數(shù)SJF()-第一個先到達先執(zhí)行printf()輸出調(diào)度結(jié)果是否完成是否運行結(jié)束SJF()-選最短作業(yè)調(diào)度六、運行與測試用書上數(shù)據(jù)對程序進行測試,結(jié)果如下:另外隨便添加一些數(shù)據(jù)進行測試,結(jié)果如下:代碼實現(xiàn):#include

4、m>#include#defineMaxNum100usingnamespacestd;structProcess_struct{charname[MaxNum];//進程名稱intarrivetime;//到達時間intservertime;//開始運行時間intfinishtime;//運行結(jié)束時間intruntime;//運行時間intrunflag;//調(diào)度標志intorder;//運行次序doubleweightwholetime;//周轉(zhuǎn)時間doubleaveragewt_FCFS,averagewt_SJF;//平均周轉(zhuǎn)時間dou

5、bleaveragewwt_FCFS,averagewwt_SJF;//平均帶權(quán)周轉(zhuǎn)時間}pro[MaxNum];intN;//實際進程個數(shù)intSJF();//短作業(yè)優(yōu)先函數(shù)intSJF(){inttemp_time=0;inti=0,j;intnumber,temp_counter;//進程編號,當前已執(zhí)行進程個數(shù)floatrun_time;intmin=0;run_time=pro[i].runtime;j=1;while((j

6、j].runtime>pro[i].runtime){run_time=pro[i].runtime;i=j;}j++;}for(j;jpro[j].arrivetime))//選出第一個到達的進程{min=j;i=j;j++;}}number=min;//對第一個到達的進程賦值,計算pro[number].servertime=pro[number].arrivetime;pro[number].finishtime=pro[number].servertime+pro[number]

7、.runtime;pro[number].runflag=1;temp_time=pro[number].finishtime;pro[number].order=1;temp_counter=1;while(temp_counter

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。