操作系統(tǒng)課程設(shè)計(jì)進(jìn)程調(diào)度模擬設(shè)計(jì)_第1頁(yè)
操作系統(tǒng)課程設(shè)計(jì)進(jìn)程調(diào)度模擬設(shè)計(jì)_第2頁(yè)
操作系統(tǒng)課程設(shè)計(jì)進(jìn)程調(diào)度模擬設(shè)計(jì)_第3頁(yè)
操作系統(tǒng)課程設(shè)計(jì)進(jìn)程調(diào)度模擬設(shè)計(jì)_第4頁(yè)
操作系統(tǒng)課程設(shè)計(jì)進(jìn)程調(diào)度模擬設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、武漢理工大學(xué)操作系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)課程設(shè)計(jì)任務(wù)書(shū) 題 目: 進(jìn)程調(diào)度模擬設(shè)計(jì)先來(lái)先服務(wù)、非強(qiáng)占式短進(jìn)程優(yōu)先算法 初始條件:1預(yù)備內(nèi)容:閱讀操作系統(tǒng)的處理機(jī)管理章節(jié)內(nèi)容,對(duì)進(jìn)程調(diào)度的功能以及進(jìn)程調(diào)度算法有深入的理解。2實(shí)踐準(zhǔn)備:掌握一種計(jì)算機(jī)高級(jí)語(yǔ)言的使用。要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書(shū)撰寫(xiě)等具體要求)1模擬進(jìn)程調(diào)度,能夠處理以下的情形: 能夠選擇不同的調(diào)度算法(要求中給出的調(diào)度算法); 能夠輸入進(jìn)程的基本信息,如進(jìn)程名、到達(dá)時(shí)間和運(yùn)行時(shí)間等; 根據(jù)選擇的調(diào)度算法顯示進(jìn)程調(diào)度隊(duì)列; 根據(jù)選擇的調(diào)度算法計(jì)算平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間。2設(shè)計(jì)報(bào)告內(nèi)容應(yīng)說(shuō)明:

2、課程設(shè)計(jì)目的與功能; 需求分析,數(shù)據(jù)結(jié)構(gòu)或模塊說(shuō)明(功能與框圖); 源程序的主要部分; 測(cè)試用例,運(yùn)行結(jié)果與運(yùn)行情況分析; 自我評(píng)價(jià)與總結(jié):i)你認(rèn)為你完成的設(shè)計(jì)哪些地方做得比較好或比較出色;ii)什么地方做得不太好,以后如何改正;iii)從本設(shè)計(jì)得到的收獲(在編寫(xiě),調(diào)試,執(zhí)行過(guò)程中的經(jīng)驗(yàn)和教訓(xùn));iv)完成本題是否有其他方法(如果有,簡(jiǎn)要說(shuō)明該方法);v)對(duì)實(shí)驗(yàn)題的評(píng)價(jià)和改進(jìn)意見(jiàn),請(qǐng)你推薦設(shè)計(jì)題目。時(shí)間安排:設(shè)計(jì)安排一周:周1、周2:完成程序分析及設(shè)計(jì)。周2、周3:完成程序調(diào)試及測(cè)試。周4、周5:驗(yàn)收、撰寫(xiě)課程設(shè)計(jì)報(bào)告。(注意事項(xiàng):嚴(yán)禁抄襲,一旦發(fā)現(xiàn),抄與被抄的一律按0分記)指導(dǎo)教師簽名:

3、年 月 日系主任(或責(zé)任教師)簽名: 年 月 日目錄課程設(shè)計(jì)目的與功能3實(shí)驗(yàn)?zāi)康?開(kāi)發(fā)平臺(tái)3需求分析,數(shù)據(jù)結(jié)構(gòu)或模塊說(shuō)明3 問(wèn)題描述.3 實(shí)驗(yàn)要求.3 功能描述.4程序框圖.5源程序的主要部分6 結(jié)構(gòu)體的創(chuàng)建.6 主函數(shù).6 sjf調(diào)度算法的函數(shù)7 fcfs調(diào)度算法的函數(shù).9測(cè)試用例,運(yùn)行結(jié)果與運(yùn)行情況分析10自我評(píng)價(jià)與總結(jié)11實(shí)驗(yàn)優(yōu)點(diǎn)11實(shí)驗(yàn)不足11收貨與體會(huì)12實(shí)驗(yàn)改進(jìn)方面12參考文獻(xiàn)12進(jìn)程調(diào)度模擬設(shè)計(jì)先來(lái)先服務(wù)、非強(qiáng)占式短進(jìn)程優(yōu)先算法一、課程設(shè)計(jì)目的與功能1實(shí)驗(yàn)?zāi)康哪M進(jìn)程調(diào)度,能夠處理以下的情形: 能夠選擇不同的調(diào)度算法(要求中給出的調(diào)度算法); 能夠輸入進(jìn)程的基本信息,如進(jìn)程名、到

4、達(dá)時(shí)間和運(yùn)行時(shí)間等; 根據(jù)選擇的調(diào)度算法顯示進(jìn)程調(diào)度隊(duì)列; 根據(jù)選擇的調(diào)度算法計(jì)算平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間。2開(kāi)發(fā)平臺(tái)visual c+ 6.0、windows xp二、需求分析,數(shù)據(jù)結(jié)構(gòu)或模塊說(shuō)明1.問(wèn)題描述:設(shè)計(jì)程序模擬進(jìn)程的先來(lái)先服務(wù)fcfs和短作業(yè)優(yōu)先sjf調(diào)度過(guò)程。假設(shè)有n個(gè)進(jìn)程分別在t1, ,tn時(shí)刻到達(dá)系統(tǒng),它們需要的服務(wù)時(shí)間分別為s1, ,sn。分別采用先來(lái)先服務(wù)fcfs和短作業(yè)優(yōu)先sjf進(jìn)程調(diào)度算法進(jìn)行調(diào)度,計(jì)算每個(gè)進(jìn)程的完成時(shí)間,周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間,并且統(tǒng)計(jì)n個(gè)進(jìn)程的平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間。2.實(shí)驗(yàn)要求:1)進(jìn)程個(gè)數(shù)n;每個(gè)進(jìn)程的到達(dá)時(shí)間t1, ,tn和服

5、務(wù)時(shí)間s1, ,sn;選擇算法1-fcfs,2-sjf。2)要求采用先來(lái)先服務(wù)fcfs和短作業(yè)優(yōu)先sjf分別調(diào)度進(jìn)程運(yùn)行,計(jì)算每個(gè)進(jìn)程的周轉(zhuǎn)時(shí)間,帶權(quán)周轉(zhuǎn)時(shí)間,并且計(jì)算所有進(jìn)程的平均周轉(zhuǎn)時(shí)間,帶權(quán)平均周轉(zhuǎn)時(shí)間;3)輸出:要求模擬整個(gè)調(diào)度過(guò)程,輸出每個(gè)時(shí)刻的進(jìn)程運(yùn)行狀態(tài),如“時(shí)刻3:進(jìn)程b開(kāi)始運(yùn)行”等等;4)輸出:要求輸出計(jì)算出來(lái)的每個(gè)進(jìn)程的周轉(zhuǎn)時(shí)間,帶權(quán)周轉(zhuǎn)時(shí)間,所有進(jìn)程的平均周轉(zhuǎn)時(shí)間,帶權(quán)平均周轉(zhuǎn)時(shí)間。3.功能描述1)先來(lái)先服務(wù)(fcfs)調(diào)度算法 將用戶(hù)作業(yè)和就緒進(jìn)程按提交順序或變?yōu)榫途w狀態(tài)的先后排成隊(duì)列,并按照先來(lái)先服務(wù)的方式進(jìn)行調(diào)度處理,是一種最普遍和最簡(jiǎn)單的方法。在沒(méi)有特殊理由要優(yōu)先

6、調(diào)度某類(lèi)作業(yè)或進(jìn)程時(shí),從處理的角度來(lái)看,fcfs方式是一種最合適的方法,因?yàn)闊o(wú)論是追加還是取出一個(gè)隊(duì)列元素在操作上都是最簡(jiǎn)單的。先來(lái)先服務(wù)(fcfs)調(diào)度算法直觀看,該算法在一般意義下是公平的。即每個(gè)作業(yè)或進(jìn)程都按照它們?cè)陉?duì)列中等待時(shí)間長(zhǎng)短來(lái)決定它們是否有限享受服務(wù)。先來(lái)先服務(wù)(fcfs)調(diào)度算法不過(guò)對(duì)于那些執(zhí)行時(shí)間較短的作業(yè)或進(jìn)程來(lái)說(shuō),如果它們?cè)谀承﹫?zhí)行時(shí)間很長(zhǎng)的作業(yè)或進(jìn)程之后到達(dá),則它們將等待很長(zhǎng)時(shí)間。 在實(shí)際操作系統(tǒng)中,盡管很少單獨(dú)使用fcfs算法,但和其他一些算法配合起來(lái),fcfs算法還是使用的相當(dāng)多的。例如基于優(yōu)先級(jí)的調(diào)度算法就是對(duì)具有同樣優(yōu)先級(jí)的作業(yè)或進(jìn)程采用的fcfs方式。2)最

7、短作業(yè)優(yōu)先法(sjf) 在批處理為主的系統(tǒng)中,如果采用fcfs的方式進(jìn)程作業(yè)調(diào)度,雖然系統(tǒng)開(kāi)銷(xiāo)小,算法簡(jiǎn)單,但是,如果估計(jì)執(zhí)行時(shí)間很多的作業(yè)實(shí)在那些長(zhǎng)作業(yè)的后面到達(dá)系統(tǒng)的話(huà),則必須等待長(zhǎng)作業(yè)執(zhí)行完成之后才有機(jī)會(huì)獲得執(zhí)行。這就造成不必要的等待和某種不公平。最短作業(yè)優(yōu)先發(fā)(sjf)就是選擇那些估計(jì)需要執(zhí)行時(shí)間最短的作業(yè)投入執(zhí)行,為他們創(chuàng)建進(jìn)程和分配資源。最短作業(yè)優(yōu)先法優(yōu)勢(shì):直觀上說(shuō),采用最短作業(yè)有限的調(diào)度方法,可使得系統(tǒng)在同一時(shí)間內(nèi)處理的作業(yè)個(gè)數(shù)最多,從而吞吐量也就大于其他的調(diào)度方式。但是,對(duì)于一個(gè)不斷有作業(yè)進(jìn)入的批處理系統(tǒng)來(lái)說(shuō)。最短作業(yè)優(yōu)先法缺點(diǎn):最短作業(yè)優(yōu)先法有可能使得那些長(zhǎng)作業(yè)永遠(yuǎn)得不到調(diào)度

8、執(zhí)行的機(jī)會(huì)。4.程序框圖預(yù)定義fcfs調(diào)度方法sjf調(diào)度方法主函數(shù)輸出注釋?zhuān)侯A(yù)定義:包括程序結(jié)構(gòu)體等,程序結(jié)構(gòu)體設(shè)計(jì)到后面函數(shù)所用的作業(yè)號(hào)、提交時(shí)間、運(yùn)行時(shí)間、開(kāi)始時(shí)間、結(jié)束時(shí)間、周轉(zhuǎn)時(shí)間、帶權(quán)周轉(zhuǎn)時(shí)間、執(zhí)行順序等內(nèi)容fcfs調(diào)度方法:程序重要的組成函數(shù),將輸入的n個(gè)程序結(jié)構(gòu)體用鏈表的方式重新排序,按照函數(shù)給定的計(jì)算方法,列出作業(yè)從新計(jì)算過(guò)的作業(yè)號(hào)、提交時(shí)間、運(yùn)行時(shí)間、開(kāi)始時(shí)間、結(jié)束時(shí)間、周轉(zhuǎn)時(shí)間、帶權(quán)周轉(zhuǎn)時(shí)間、執(zhí)行順序等內(nèi)容sjf調(diào)度方法:采用最短優(yōu)先法,將輸入的n個(gè)程序結(jié)構(gòu)體用鏈表的方式重新排序,列出作業(yè)從新計(jì)算過(guò)的作業(yè)號(hào)、提交時(shí)間、運(yùn)行時(shí)間、開(kāi)始時(shí)間、結(jié)束時(shí)間、周轉(zhuǎn)時(shí)間、帶權(quán)周轉(zhuǎn)時(shí)間、執(zhí)

9、行順序等內(nèi)容主函數(shù):先進(jìn)行輸入操作,將輸入的pro結(jié)構(gòu)體存儲(chǔ)起來(lái),再調(diào)用兩個(gè)算法函數(shù),將fcfs調(diào)度方法所列出的作業(yè)結(jié)構(gòu)體和sjf調(diào)度方法所列出的結(jié)構(gòu)體整合表示出來(lái),最后方便輸出。三、源程序的主要部分1、結(jié)構(gòu)體的創(chuàng)建struct prodouble handtime;double asktime;double starttime;double endtime;double usetime;double right;int runorder;int num;pro *next;2、主函數(shù) int main()pro p20;coutpronum;cout按時(shí)間先后順序輸入進(jìn)程的提交時(shí)間和運(yùn)行時(shí)間

10、endl;for(int i=0;ipronum;i+)pi.num=i+1; cout第i+1pi.handtimepi.asktime;while(pi.handtimepi-1.handtime)cout請(qǐng)從新輸入第i+1pi.handtimepi.asktime; fcfs(p,pronum); sjf(p,pronum); return 0; /couthandtime asktimeendl;3、sjf調(diào)度算法的函數(shù)void sjf(pro p,int n)int i,order=1;pro *now=&p0;pro *temp,*nextrun;p0.starttime=p0.h

11、andtime;p0.endtime=p0.handtime+p0.asktime;p0.usetime=p0.asktime;p0.right=1.0;p0.runorder=order;+order;for(i=0;in-1;i+)pi.next=&pi+1;/coutnext-numendl;pn-1.next=null;/*while(now!=null)coutnumthandtimenext;*/while(now-next!=null)nextrun=now-next;/couthandtimetasktimeasdfafdsahandtime=now-endtime)nextr

12、un-starttime=nextrun-handtime; elseif(nextrun-next!=null)temp=nextrun-next; while(temp-handtimeendtime) /用來(lái)確定nextrun是否改變 if(temp-asktimeasktime)nextrun=temp; if(temp-next!=null)temp=temp-next;else break; nextrun-starttime=now-endtime; /確定nextrun完畢 if(nextrun!=now-next)temp=now; /修改鏈表while(temp-next!

13、=nextrun)temp=temp-next;temp-next=nextrun-next;temp=now-next; now-next=nextrun;nextrun-next=temp; /鏈表修改完畢 nextrun-endtime=nextrun-starttime+nextrun-asktime;nextrun-usetime=nextrun-endtime-nextrun-handtime;nextrun-right=nextrun-usetime/nextrun-asktime;nextrun-runorder=order;+order; /進(jìn)程信息修改完畢 now=next

14、run;double sumtime=0,sumright=0;coutsjfendl;cout作業(yè)號(hào)t提交t運(yùn)行t開(kāi)始t結(jié)束t周轉(zhuǎn)t帶權(quán)t執(zhí)行endl;for(i=0;in;i+)sumtime+=pi.usetime;sumright+=pi.right;coutpi.numtpi.handtimetpi.asktimetpi.starttimetpi.endtimetpi.usetimetpi.righttpi.runorderendl;cout平均tttttsumtime/ntsumright/nendl;4、fcfs調(diào)度算法的函數(shù)void fcfs(pro p,int n)int i

15、;p0.starttime=p0.handtime;p0.endtime=p0.handtime+p0.asktime;p0.usetime=p0.asktime;p0.right=1.0;p0.runorder=1;for(i=1;in;i+)if(pi.handtimepi-1.endtime) pi.starttime=pi-1.endtime;elsepi.starttime=pi.handtime;pi.endtime=pi.starttime+pi.asktime;pi.usetime=pi.endtime-pi.handtime;pi.right=pi.usetime/pi.as

16、ktime;pi.runorder=i+1;double sumtime=0,sumright=0;coutfcfsendl;cout作業(yè)號(hào)t提交t運(yùn)行t開(kāi)始t結(jié)束t周轉(zhuǎn)t帶權(quán)t執(zhí)行endl;for(i=0;in;i+)sumtime+=pi.usetime;sumright+=pi.right;coutpi.numtpi.handtimetpi.asktimetpi.starttimetp i.endtimetpi.usetimetpi.righttpi.runorderendl;cout平均tttttsumtime/ntsumright/nendlendl;四、測(cè)試用例,運(yùn)行結(jié)果與運(yùn)行情況

17、分析(圖1:運(yùn)行3個(gè)進(jìn)程數(shù)的情況下程序結(jié)果)(圖2:運(yùn)行5個(gè)進(jìn)程數(shù)的情況下程序結(jié)果)(圖3:提交時(shí)間錯(cuò)誤的情況下,程序自動(dòng)糾正的運(yùn)行結(jié)果)五、自我評(píng)價(jià)與總結(jié)1. 實(shí)驗(yàn)優(yōu)點(diǎn)我認(rèn)為我的實(shí)驗(yàn)重在進(jìn)程調(diào)度的算法,使用到最常用的fcfs調(diào)度算法和sjf最短作業(yè)優(yōu)先法,在程序編輯上,程序比較簡(jiǎn)明,使觀看者能一眼分析出整個(gè)程序的脈絡(luò)和構(gòu)架,方便閱讀。在程序結(jié)果顯示上,也非常簡(jiǎn)明扼要,通過(guò)輸入作業(yè)的提交時(shí)間和運(yùn)行時(shí)間,可以用fcfs調(diào)度算法和sjf最短作業(yè)優(yōu)先法分辨顯示出,開(kāi)始時(shí)間,結(jié)束時(shí)間,周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間,和執(zhí)行次序。平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間,整體看上去符合課程設(shè)計(jì)題目要求,又非常詳細(xì)。2.

18、實(shí)驗(yàn)不足我認(rèn)為還有不足,在于如果第一個(gè)作業(yè)和第二個(gè)作業(yè)同時(shí)提交,無(wú)論二者所用的時(shí)間如何,都是先完成第一個(gè)作業(yè),默認(rèn)第一個(gè)作業(yè)先運(yùn)行,對(duì)于后面的作業(yè)才會(huì)比較運(yùn)行時(shí)間和提交時(shí)間,這在程序設(shè)計(jì)上出現(xiàn)了邏輯問(wèn)題,雖然不影響使用,但是這還是算是美中不足,是在sjf函數(shù)的時(shí)間運(yùn)算比較中出現(xiàn)問(wèn)題,在鏈表的表頭以后應(yīng)該要改正。3. 收貨與體會(huì)本次課程設(shè)計(jì)可以說(shuō)是對(duì)操作系統(tǒng)課程本學(xué)期所學(xué)內(nèi)容的一次綜合應(yīng)用,雖然稱(chēng)不上一個(gè)完整的操作系統(tǒng)進(jìn)程調(diào)度程序,但已經(jīng)展現(xiàn)了一個(gè)完整作業(yè)調(diào)度的雛形。通過(guò)本次課程設(shè)計(jì),不僅進(jìn)一步熟悉了操作系統(tǒng)所涉及的各方面知識(shí),更掌握了一個(gè)進(jìn)程調(diào)度的整體架構(gòu)方式以及作業(yè)調(diào)度構(gòu)造的整體流程。并且,從中認(rèn)識(shí)到,進(jìn)程調(diào)度模塊化(先來(lái)先服務(wù)、輪轉(zhuǎn)法、優(yōu)先級(jí)法、最短作業(yè)優(yōu)先法、最高響應(yīng)比優(yōu)先法)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論