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

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

ID:2242459

大?。?03.50 KB

頁數(shù):10頁

時(shí)間: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)度算法 》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

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

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

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

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

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

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

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

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

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

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