06060111-王江-先來先服務和短進程優(yōu)先調度算法模擬_第1頁
06060111-王江-先來先服務和短進程優(yōu)先調度算法模擬_第2頁
06060111-王江-先來先服務和短進程優(yōu)先調度算法模擬_第3頁
06060111-王江-先來先服務和短進程優(yōu)先調度算法模擬_第4頁
06060111-王江-先來先服務和短進程優(yōu)先調度算法模擬_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、西安建筑科技大學華清學院課程設計(論文)第 頁 共16頁課程設計(論文)題 目:先來先服務和短進程優(yōu)先調度算法模擬院 (系): 華清學院專業(yè)班級:計算機2011姓 名:王江學 號:11指導教師:曾應員2013年 12 月 18日西安建筑科技大學華清學院課程設計(論文)任務書專業(yè)班級: 計算機1101 學生姓名: 王江 指導教師(簽名):一、課程設計(論文)題目先來先服務和短進程優(yōu)先調度算法模擬(進程調度):編寫一個進程調度程序,允許多個進程并行執(zhí)行,并能選擇是先來先服務算法還是短進程優(yōu)先算法。二、本次課程設計(論文)應達到的目的操作系統課程實踐性比較強。課程設計是加強學生實踐能力的一個強有力手

2、段。課程設計要求學生在完成程序設計的同時能夠寫出比較規(guī)范的設計報告。嚴格實施課程設計這一環(huán)節(jié),對于學生基本程序設計素養(yǎng)的培養(yǎng)和軟件工作者工作作風的訓練,將起到顯著的促進作用。本題目要達到目的:深入掌握進程調度的概念原理和實現方法。三、本次課程設計(論文)任務的主要內容和要求(包括原始數據、技術參數、設計要求等)先來先服務調度算法是以進程的到達時間為判斷標準,按各個進程所的到達時間先后順序進行調度。短進程優(yōu)先調度算法是按進程的預計運行時間長短進行排序,先執(zhí)行短進程。四、應收集的資料及主要參考文獻:操作系統經典算法的編程實現資料非常豐富,可以在圖書館找書籍或在因特網上找資料,都很容易找到,但是大部

3、分代碼是不全的,不能直接運行,希望大家只是把它當參考,編碼還是自己做。參考文獻:【1】湯小丹、梁紅兵、哲鳳屏、湯子瀛 編著.計算機操作系統(第三版).西安:西安電子科技大學出版社,2007.5【2】史美林編.計算機操作系統教程.北京:清華大學出版社,1999.11【3】徐甲同編著.操作系統教程.西安:西安電子科技大學出版社,1996.8【4】Clifford,A.Shaffer編著.數決結構與算法分析(C+版).北京:電子工業(yè)出版社,2005.7【5】蔣立翔編著.C+程序設計技能百練.北京:中國鐵道出版社,2004.1五、審核批準意見教研室主任(簽字)設計總說明能夠選擇不同的調度算法(先來先服

4、務,非強占式短進程優(yōu)先算法),通過給出進程名、進程的到達時間和進程的運行時間,根據調度算法計算出進程的平均周轉時間和平均帶權周轉時間,比較調度算法的優(yōu)劣。關鍵字:先來先服務 短進程優(yōu)先調度 進程 平均周轉時間平均帶權周轉時間目錄TOC o 1-3 h z u HYPERLINK l _Toc367713036 1.設計目的 PAGEREF _Toc367713036 h 1 HYPERLINK l _Toc367713037 2.問題描述2 HYPERLINK l _Toc367713038 3.需求分析2HYPERLINK l _4.概要設計4.概要設計3 HYPERLINK l _Toc3

5、67713040 5.詳細設計4 HYPERLINK l _Toc367713041 6.調試分析7 HYPERLINK l _Toc367713042 7.使用說明8 HYPERLINK l _Toc367713043 8.設計總結10 HYPERLINK l _Toc367713044 9.參考文獻11HYPERLINK l _10程序源代碼10.程序源代碼12操作系統課程設計先來先服務和短進程優(yōu)先調度算法模擬1.設計目的“操作系統”是計算機專業(yè)的核心專業(yè)課,“操作系統課程設計”是理解和鞏固操作系統基本理論、原理和方法的重要的實踐環(huán)節(jié)。 操作系統課程主要講述的內容是多道操作系統的原理與技術

6、,與其它計算機原理、編譯原理、匯編語言、計算機網絡、程序設計等專業(yè)課程關系十分密切。本課程設計的目的綜合應用學生所學知識,建立系統和完整的計算機系統概念,理解和鞏固操作系統基本理論、原理和方法,掌握操作系統基本理論與管理方式。在算法基礎上,解決實際的管理功能的問題,提高學生實際應用、編程的能力。課程設計要求學生在完成程序設計的同時能夠撰寫比較規(guī)范的設計報告。嚴格實施課程設計這一環(huán)節(jié),對于學生基本程序設計素養(yǎng)的培養(yǎng)和軟件工作者工作作風的訓練,將起到顯著的促進作用。2.問題描述此次做的進程調度模擬系統,用戶可以輸入各進程信息(包含進程名、到達時間、運行時間)。輸入進程數,然后輸入進程的提交時間和運

7、行時間,顯示先來先服務調度算法和非強占式短進程優(yōu)先調度算法的作業(yè)號、提交時間、運行時間、開始時間、結束時間、周轉時間、帶權周轉時間、執(zhí)行時間、平均周轉時間和平均帶權周轉時間。3.需求分析3.1 數據需求需要用戶自行鍵入進程數,進程提交時間和運行時間.3.2 基本功能需求模擬進程調度,能夠處理以下的情形:能夠選擇不同的調度算法(要求中給出的調度算法); 能夠輸入進程的基本信息,如進程名、到達時間和運行時間等; 根據選擇的調度算法顯示進程調度隊列; 根據選擇的調度算法計算平均周轉時間和平均帶權周轉時間。3.3 非功能性需求用戶界面需求:簡潔、易用、易懂、友好的用戶界面。硬件要求:裝有Visual

8、C+6.0的計算機??煽啃孕枨螅罕WC用戶在正常使用本系統時,用戶的操作或誤操作不會產生數據的丟失。4.概要設計4.1 數據結構此次程序從大的方面來說是利用鏈表來實現的,在程序中定義了一個結構體struct PCB用來保存每一條記錄,每個結點包括進程名(作業(yè)名)、進程的提交時間、運行時間、開始時間、結束時間、周轉時間、帶權周轉時間、平均周轉時間和平均帶權周轉時間。定義一個double型的handtime(提交時間),一個double型的asktime(運行時間)、starttime(開始時間)、endtime(結束時間)、usetime(周轉時間)、right(帶權周轉時間)以及整型的runor

9、der(執(zhí)行的順序)和num(進程數),還定義一個指針next。4.2 系統包含的函數4.2.1先來先服務調度算法:void FCFS(pro p,int n)4.2.2非強占式短進程優(yōu)先調度算法:void SJF(pro p,int n)4.2.3主函數:int main()4.3 函數間的關系函數SJF和函數FCFS都在主函數中進行調用4.4 系統功能模塊圖圖4-1系統功能模塊圖5.詳細設計5.1 結構體的詳細定義Struct pro的定義如下:struct prodouble handtime;double asktime;double starttime;double endtime;

10、double usetime;double right;int runorder;int num;pro *next;5.2 系統函數詳細介紹先來先服務調度算法有兩種情況:一是進程的提交時間不一樣,是根據到達的先后順序來執(zhí)行的,先到達先執(zhí)行;二是進程的提交時間一樣,即所有的進程的到達時間是一樣的,要看進程的執(zhí)行順序,在前的進程先執(zhí)行。非強占式短進程優(yōu)先調度算法,有兩種情況:一是進程的到達的時間不一樣,那么首先執(zhí)行第一個到達的進程,執(zhí)行完后,然后比較剩下進程的到達時間和運行時間,先到達的和運行時間短的進程先運行;二是進程的到達時間一樣,比較所有的進程的運行時間,運行時間短的進程先執(zhí)行。5.3 系

11、統功能模塊介紹系統功能模塊主要分為兩大部分:先來先服務調度算法和非強占式短進程優(yōu)先調度算法.5.4 具體模塊設計5.4.1先來先服務調度算法(圖1)圖5-1先來先服務調度5.4.2非強占式短進程優(yōu)先調度算法圖5-2非強占式短進程優(yōu)先調度6.調試分析測試數據:到達時間不一樣進程3(1.2 2.4 3.2)進程4(1.3 2.5 3.1 4.2)到達時間一樣進程3(1.2 1.1 1.3)進程4(1.4 1.1 1.2 1.0.5)7.使用說明7.1到達時間不一樣7.1.1進程數為:3圖7-17.1.2進程數為:4圖7-27.2到達時間一樣7.2.1進程數為:3圖7-37.2.2進程數為:4圖7-

12、48.設計總結這次課程設計給我一個很好的鍛煉和實踐的機會,讓我對那些算法有了更深的了解。這次做的比較好的是直接把進程信息設定為一個結構體,如此以來對進程的操作比較方便,實現了基本信息的有效封裝,充分利用鏈表來實現算法;還有就是基本上完成課程設計的要求,計算出平均周轉時間和平均帶權周轉時間,比較了兩種算法的優(yōu)劣。不過,這次課設也有很多不足之處,比如說在提交時間一樣的情況下,先來先服務是按照進程號的順序執(zhí)行,非強占式短進程優(yōu)先調度算法先執(zhí)行第一個進程,然后比較剩下進程的運行時間,運行時間最短的進程先進行。當提交時間一樣時,對于短進程優(yōu)先調度算法,應該是直接比較各個進程的運行時間,運行時間最短的進程

13、先執(zhí)行,這個不足之處需要改進。通過這次課程設計,提高了方面的水平。從這次課設,我不僅加深對操作系統知識的了解,而且更加提高自己的編程能力和實踐水平。雖然這次課程設計結束了,然而對操作系統的學習不能間斷,我要繼續(xù)學習操作系統的知識,了解和掌握各種不同類型的操作系統;還要加強自己的編程能力,讓自己的實踐水平更上一層樓。但是,我覺得既然是操作系統課程設計應該涉及到多個操作系統,讓我們了解更多不同的操作系統,通過不同的操作系統實踐,掌握各個不同系統的特點和區(qū)別。9.參考文獻【1】湯小丹、梁紅兵、哲鳳屏、湯子瀛 編著.計算機操作系統(第三版).西安:西安電子科技大學出版社,2007.5【2】史美林編.計

14、算機操作系統教程.北京:清華大學出版社,1999.11【3】徐甲同編著.操作系統教程.西安:西安電子科技大學出版社,1996.8【4】Clifford,A.Shaffer編著.數決結構與算法分析(C+版).北京:電子工業(yè)出版社,2005.7【5】蔣立翔編著.C+程序設計技能百練.北京:中國鐵道出版社,2004.1 10程序源代碼#includeusing namespace std;struct prodouble handtime;double asktime;double starttime;double endtime;double usetime;double right;int ru

15、norder;int num;pro *next;/void SJF(pro p,int n);void FCFS(pro p,int n);/int pronum;int main()pro p20;coutpronum;cout按時間先后順序輸入進程的提交時間和運行時間endl;for(int i=0;ipronum;i+)pi.num=i+1; cout第i+1pi.handtimepi.asktime;while(pi.handtimepi-1.handtime)cout請從新輸入第i+1pi.handtimepi.asktime; FCFS(p,pronum); SJF(p,pron

16、um); return 0; /couthandtime asktimeendl;/void SJF(pro p,int n)int i,order=1;pro *now=&p0;pro *temp,*nextrun;p0.starttime=p0.handtime;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(n

17、ow!=NULL)coutnumthandtimenext;*/while(now-next!=NULL)nextrun=now-next;/couthandtimetasktimeasdfafdsahandtime=now-endtime)nextrun-starttime=nextrun-handtime; elseif(nextrun-next!=NULL)temp=nextrun-next; while(temp-handtimeendtime) /用來確定nextrun是否改變 if(temp-asktimeasktime)nextrun=temp; if(temp-next!=NU

18、LL)temp=temp-next;else break; nextrun-starttime=now-endtime; /確定nextrun完畢 if(nextrun!=now-next)temp=now; /修改鏈表while(temp-next!=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=ne

19、xtrun-endtime-nextrun-handtime;nextrun-right=nextrun-usetime/nextrun-asktime;nextrun-runorder=order;+order; /進程信息修改完畢 now=nextrun;double sumtime=0,sumright=0;coutSJFendl;cout作業(yè)號t提交t運行t開始t結束t周轉t帶權t執(zhí)行endl;for(i=0;in;i+)sumtime+=pi.usetime;sumright+=pi.right;coutpi.numtpi.handtimetpi.asktimetpi.starttimetpi.endtimetpi.usetimetpi.righttpi.runorderendl;cout平均tt

溫馨提示

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

評論

0/150

提交評論