優(yōu)先調(diào)度算法、先來先服務(wù)調(diào)度算法

優(yōu)先調(diào)度算法、先來先服務(wù)調(diào)度算法

ID:2242459

大?。?03.50 KB

頁數(shù):10頁

時間:2017-11-15

優(yōu)先調(diào)度算法、先來先服務(wù)調(diào)度算法 _第1頁
優(yōu)先調(diào)度算法、先來先服務(wù)調(diào)度算法 _第2頁
優(yōu)先調(diào)度算法、先來先服務(wù)調(diào)度算法 _第3頁
優(yōu)先調(diào)度算法、先來先服務(wù)調(diào)度算法 _第4頁
優(yōu)先調(diào)度算法、先來先服務(wù)調(diào)度算法 _第5頁
資源描述:

《優(yōu)先調(diào)度算法、先來先服務(wù)調(diào)度算法 》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、操作系統(tǒng)課程設(shè)計(一)實驗題目處理機(jī)調(diào)度——短作業(yè)優(yōu)先調(diào)度算法、先來先服務(wù)調(diào)度算法(二)試驗?zāi)康募由钭鳂I(yè)概念的理解,深入了解多道程序設(shè)計系統(tǒng)中如何組織作業(yè)、管理作業(yè)和調(diào)度作業(yè),加深對作業(yè)調(diào)度算法的理解。(三)實驗環(huán)境普通計算機(jī)一臺,操作系統(tǒng)是WINDOWS,編譯環(huán)境VC++6.0(四)算法思想及數(shù)據(jù)結(jié)構(gòu)1調(diào)度算法作業(yè)調(diào)度算法的關(guān)鍵是在已有的作業(yè)后備隊列上按照一定的規(guī)則選擇一個作業(yè),如何在已有的數(shù)據(jù)結(jié)構(gòu)上進(jìn)行操作的問題。①短作業(yè)優(yōu)先調(diào)度算法(SJF)短作業(yè)優(yōu)先算法總是提交要求運行時間最短的作業(yè),讓其進(jìn)入主存儲器以便占用處理器運行②先來先服務(wù)算法(FCFS)每次提交作業(yè)總是選擇后

2、備隊列的對首作業(yè),實驗中用head指向?qū)κ譐CB。有作業(yè)進(jìn)入系統(tǒng),則掛入后備隊列對尾。對首JCB進(jìn)入內(nèi)存后執(zhí)行,在實驗中由于沒有真正的內(nèi)存,我們用程序模擬作業(yè)執(zhí)行,需修改該作業(yè)的JCB的相關(guān)信息即可,如狀態(tài)為state置為“R”,開始執(zhí)行時間tb賦值為當(dāng)前時間time。(p->state=R;p->tb=time;)該作業(yè)執(zhí)行完成后,需修改其狀態(tài)位state為“F”,并計算該作業(yè)的相關(guān)信息:計算周轉(zhuǎn)時間:p->ti=(float)(p->tc-p->ts);計算帶權(quán)周轉(zhuǎn)時間:p->wi=(float)(p->ti/p->ntime);計算平均周轉(zhuǎn)時間:eti+=p->ti;計

3、算帶權(quán)平均周轉(zhuǎn)時間:ewi+=p->wi;并輸出當(dāng)前系統(tǒng)中各作業(yè)的信息print(p,m);提交作業(yè)時,從后備隊列對首開始向?qū)ξ矑呙?,查找狀態(tài)為“W”且要求系統(tǒng)運行時間最短的作業(yè),選中將其調(diào)入內(nèi)存。同F(xiàn)CFS算法,在實驗中由于沒有真正的內(nèi)存,我們用程序模擬作業(yè)執(zhí)行,需修改該作業(yè)的JCB的相關(guān)信息。該作業(yè)執(zhí)行完成后,需修改其狀態(tài)位state為“F”,計算該作業(yè)的相關(guān)信息和輸出當(dāng)前系統(tǒng)中各作業(yè)的信息。2主要數(shù)據(jù)結(jié)構(gòu)每個作業(yè)由一個作業(yè)控制塊JCB表示,JCB可以包含如下信息:作業(yè)名、提交時間、所需的運行時間、所需的資源、作業(yè)狀態(tài)、鏈指針等等。具體結(jié)構(gòu)如下:typedefstruct

4、jcb{charname[10];/*作業(yè)名*/charstate;/*作業(yè)狀態(tài)*/intts;/*提交時間*/floatsuper;/*優(yōu)先權(quán)*/inttb;/*開始運行時間*/inttc;/*完成時間*/floatti;/*周轉(zhuǎn)時間*/floatwi;/*帶權(quán)周轉(zhuǎn)時間*/intntime;/*作業(yè)所需運行時間*/charresource[10];/*所需資源*/structjcb*next;/*結(jié)構(gòu)體指針*/}JCB;JCB*p,*tail=NULL,*head=NULL;作業(yè)的狀態(tài)可以是等待W(Wait)、運行R(Run)和完成F(Finish)三種狀態(tài)之一。每個作業(yè)的

5、最初狀態(tài)總是等待W。,組成一個后備隊列等待,總是首先調(diào)度等待隊列中隊首的作業(yè)。本設(shè)計采用鏈表的形式存放各后備隊列當(dāng)中的作業(yè)控制塊,各個等待的作業(yè)按照提交時刻的先后次序排隊。當(dāng)一個作業(yè)進(jìn)入系統(tǒng)時,就為其動態(tài)建立一作業(yè)控制塊(JCB),掛入后備隊列尾部。當(dāng)作業(yè)調(diào)度時,從后備隊列中按某種調(diào)度算法選擇一作業(yè),讓其進(jìn)入主存以便占用CPU執(zhí)行。每個作業(yè)完成后要打印該作業(yè)的開始運行時刻、完成時刻、周轉(zhuǎn)時間和帶權(quán)周轉(zhuǎn)時間,這一組作業(yè)完成后要計算并打印這組作業(yè)的平均周轉(zhuǎn)時間、帶權(quán)平均周轉(zhuǎn)時間。(五)課程設(shè)計內(nèi)容每個作業(yè)由一個作業(yè)控制塊JCB表示,JCB包含如下信息:作業(yè)名,到達(dá)時間,開始運行時

6、間,所需的服務(wù)時間,完成時間,周轉(zhuǎn)時間,帶權(quán)周轉(zhuǎn)時間,作業(yè)狀態(tài),鏈指針等。作業(yè)的狀態(tài)可以是等待w,運行R,完成F三種狀態(tài)之一,每個作業(yè)的最初狀態(tài)總是等待w.1短作業(yè)優(yōu)先調(diào)度算法中的作業(yè)控制塊的JCBstructpcbsf{Stringname;intntime;//運行所需時間intrtime;//已運行時間intbtime;//開始時間intftime;//完成時間inttotime;//周轉(zhuǎn)時間structpcbsf*link;};pcbsf*psf;//在短作業(yè)優(yōu)先算法中記錄進(jìn)程pcbsf*readysf1;//在此算法中用了兩個隊列此為第一隊列的首指針pcbsf*re

7、adysf2;pcbsf*rearsf1;//第一隊列尾指針pcbsf*rearsf2;intcountsf=0;//在短作業(yè)優(yōu)先中記錄輸入的進(jìn)程數(shù)typedefstructpcbPCB;2先來先服務(wù)調(diào)度算法中的作業(yè)控制塊的JCBstructpcbfcfs{Stringname;intrtime;//到達(dá)時間intntime;//服務(wù)時間intbtime;//開始時間intftime;//完成時間inttotime;//周轉(zhuǎn)時間}FCFS[50];pcbfcfsSF[10];//用于記錄短作業(yè)優(yōu)先算法中

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

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

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