操作系統(tǒng)課程設計模擬進程調(diào)度功能的設計與實現(xiàn)_第1頁
操作系統(tǒng)課程設計模擬進程調(diào)度功能的設計與實現(xiàn)_第2頁
操作系統(tǒng)課程設計模擬進程調(diào)度功能的設計與實現(xiàn)_第3頁
操作系統(tǒng)課程設計模擬進程調(diào)度功能的設計與實現(xiàn)_第4頁
操作系統(tǒng)課程設計模擬進程調(diào)度功能的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、武漢工程大學 計算機科學與工程學院綜合設計報告設計名稱: 操作系統(tǒng)綜合設計 設計題目: 模擬進程調(diào)度功能的設計與實現(xiàn) 學生學號: 專業(yè)班級: 學生姓名: 學生成績: 指導教師(職稱): 課題工作時間:2011年6月8日 至 2011年6月29日 說明:1、報告中的第一、二、三項由指導教師在綜合設計開始前填寫并發(fā)給每個學生;四、五兩項(中英文摘要)由學生在完成綜合設計后填寫。2、學生成績由指導教師根據(jù)學生的設計情況給出各項分值及總評成績。3、指導教師評語一欄由指導教師就學生在整個設計期間的平時表現(xiàn)、設計完成情況、報告的質(zhì)量及答辯情況,給出客觀、全面的評價。4、所有學生必須參加綜合設計的答辯環(huán)節(jié),

2、凡不參加答辯者,其成績一律按不及格處理。答辯小組成員應由2人及以上教師組成。5、報告正文字數(shù)一般應不少于5000字,也可由指導教師根據(jù)本門綜合設計的情況另行規(guī)定。6、平時表現(xiàn)成績低于6分的學生,其綜合設計成績按不及格處理。7、此表格式為武漢工程大學計算機科學與工程學院提供的基本格式(適用于學院各類綜合設計),各教研室可根據(jù)本門綜合設計的特點及內(nèi)容做適當?shù)恼{(diào)整,并上報學院批準。成績評定表學生姓名: 學號: 班級: 類別合計分值各項分值評分標準實際得分合計得分備注平時表現(xiàn)1010按時參加綜合設計,無曠課、遲到、早退、違反實驗室紀律等情況。完成情況3020按設計任務書的要求完成了全部任務,能完整演示

3、其設計內(nèi)容,符合要求。10能對其設計內(nèi)容進行詳細、完整的介紹,并能就指導教師提出的問題進行正確的回答。報告質(zhì)量3510報告文字通順,內(nèi)容翔實,論述充分、完整,立論正確,結構嚴謹合理;報告字數(shù)符合相關要求,工整規(guī)范,整齊劃一。5課題背景介紹清楚,綜述分析充分。5設計方案合理、可行,論證嚴謹,邏輯性強,具有說服力。5符號統(tǒng)一;圖表完備、符合規(guī)范要求。5能對整個設計過程進行全面的總結,得出有價值的結論或結果。5參考文獻數(shù)量在3篇以上,格式符合要求,在正文中正確引用。答辯情況2510在規(guī)定時間內(nèi)能就所設計的內(nèi)容進行闡述,言簡意明,重點突出,論點正確,條理清晰。15在規(guī)定時間內(nèi)能準確、完整、流利地回答教

4、師所提出的問題??傇u成績: 分 補充說明: 指導教師: (簽字)日 期: 年 月 日答辯記錄表學生姓名: 學號: 班級: 答辯地點: 答辯內(nèi)容記錄:答辯成績合計分值各項分值評分標準實際得分合計得分備注2510在規(guī)定時間內(nèi)能就所設計的內(nèi)容進行闡述,言簡意明,重點突出,論點正確,條理清晰。15在規(guī)定時間內(nèi)能準確、完整、流利地回答教師所提出的問題。答辯小組成員(簽字): 年 月 日指導教師評語指導教師: (簽字)日 期: 2011 年 月 日一、綜合設計目的、條件、任務和內(nèi)容要求:課題目的:用java(或c+)編程實現(xiàn)操作模擬操作系統(tǒng)進程調(diào)度子系統(tǒng)的基本功能;實現(xiàn)先來先服務、時間片輪轉、多級反饋輪轉

5、法對進程進行的調(diào)度過程。課題條件:一臺裝有windows95,windows nt 4.0或更高的操作系統(tǒng)和某種高級語言開發(fā)環(huán)境(例如java或vc+)的pc機,具體細節(jié)如下:1 jdk1.52 eclipse3.3課題任務:一、 確定開發(fā)的項目名稱,并熟悉相關知識,確定開發(fā)工具并實現(xiàn)開發(fā)環(huán)境的安裝配置二、 實現(xiàn)用戶界面的開發(fā)三、 實現(xiàn)進程調(diào)度子系統(tǒng)如下功能模塊:1、進程概念:進程是被獨立分配資源的最小單位。進程是動態(tài)概念,必須程序運行才有進程的產(chǎn)生。2、 進程的狀態(tài)模型: (1)運行:進程已獲得處理機,當前處于運行狀態(tài)。(2)就緒:進程已經(jīng)準備好,一旦有處理器就可運行。3、處理機調(diào)度:在多道

6、程序設計系統(tǒng)中,內(nèi)存中有多道程序運行,他們相互爭奪處理機這一重要的資源。處理機調(diào)度就是從就緒隊列中,按照一定的算法選擇一個進程并將處理機分配給它運行,以實現(xiàn)進程并發(fā)地執(zhí)行。4、 進程調(diào)度算法的功能記錄系統(tǒng)中所有進程的執(zhí)行情況選擇占有處理機的進程進行進程的上下文切換5、進程調(diào)度的算法:(1)先來先服務算法(2)優(yōu)先數(shù)算法:即進程的執(zhí)行順序由高優(yōu)先級到低優(yōu)先級。系統(tǒng)或用戶按某種原則為進程指定一個優(yōu)先級來表示該進程所享有的確調(diào)度優(yōu)先權。該算法核心是確定進程的優(yōu)先級。(3)時間片輪轉算法:固定時間片,每個進程在執(zhí)行一個時間片后,輪到下一進程執(zhí)行,知道所有的進程執(zhí)行完畢。處理器同一個時間只能處理一個任務

7、。處理器在處理多任務的時候,就要看請求的時間順序,如果時間一致,就要進行預測。挑到一個任務后,需要若干步驟才能做完,這些步驟中有些需要處理器參與,有些不需要(如磁盤控制器的存儲過程)。不需要處理器處理的時候,這部分時間就要分配給其他的進程。原來的進程就要處于等待的時間段上。經(jīng)過周密分配時間,宏觀上就象是多個任務一起運行一樣,但微觀上是有先后的,就是時間片輪換。 (4) 多級反饋輪轉法四、 調(diào)試并撰寫報告 指導教師簽字: 2011 年 6 月 29 日二、進度安排:12周周五13周周三,進行學生選題;1920周,師現(xiàn)場指導學生,完成設計任務和設計報告;20周五,綜合設計答辯。三、應收集資料及主要

8、參考文獻:著作:1 張堯學,史美林.計算機操作系統(tǒng)教程第2版.清華大學出版社2000年著作:2 張堯學.計算機操作系統(tǒng)教程第2版 習題與實驗指導.2000年四、綜合設計(課程設計)摘要(中文):無論是在批處理系統(tǒng)還是分時系統(tǒng)中,用戶進程數(shù)一般都多于處理機數(shù)、這將導致它們互相爭奪處理機。另外,系統(tǒng)進程也同樣需要使用處理機。但是處理機在某一時刻只能執(zhí)行一個進程,這就引入了進程調(diào)度這一機制!進程調(diào)度程序按一定的策略,動態(tài)地把處理機分配給處于就緒隊列中的某一個進程,以使之執(zhí)行。進程調(diào)度的主要功能是按照一定的策略選擇個處于就緒狀態(tài)的進程,使其獲得處理機執(zhí)行。應根據(jù)不同的系統(tǒng)設計目的,選擇最佳合適的進程調(diào)

9、度算法。常用的進程調(diào)度算法有:先來先服務調(diào)度算法,短作業(yè)優(yōu)先調(diào)度算法,優(yōu)先級調(diào)度算法,時間片輪轉算法,多級反饋隊列調(diào)度算法!五、綜合設計(課程設計)abstract(英文):whether in a batch system or time-sharing systems, user processes are generally more than the number of processors, which will lead them to compete for processor. in addition, the system processes also need to use

10、 the processor. but the processor can execute only one at a time process, which introduces the process of scheduling this mechanism! process scheduler according to a certain strategy, dynamically assigned to the processor in a ready queue of a process to make it perform.the main function of process

11、scheduling strategy is based on certain selection - a process in the ready state to receive processor implementation. depending on the system should be designed to select the best suitable process scheduling algorithm. the process commonly used scheduling algorithms are: a first-come first-served sc

12、heduling, priority scheduling short jobs, priority scheduling, round-robin algorithm, multi-level feedback queue scheduling algorithm!目 錄摘 要 .iiabstract . .第一章 課題概述. .11.1 課題背景.11.2 進程調(diào)度簡介. .11.2 .1進程調(diào)度功能. 11.2 .2進程調(diào)度的三個基本機制.11.2 .3進程調(diào)度的方式. .11.2.4進程調(diào)度的原因. .21.3 課題目的.21.4 課題意義.2第二章設計簡介及設計方案論述. .32.1

13、 設計構想.32.2 問題及技術要求.32.3 理論依據(jù).32.4 方案論述.32.4.1 數(shù)據(jù)結構.32.4.2 算法設計.42.4.3 替換思想.5第三章詳細設計. 63.1 數(shù)據(jù)結構.63.2 功能劃分.63.3 算法流程圖.63.3.1 先來先服務調(diào)度.63.3.2 優(yōu)先級調(diào)度.73.3.3 時間片輪轉調(diào)度.83.3.4 多級反饋隊列調(diào)度.93.4 函數(shù)功能定義.9第四章設計結果及分析. 114.1 創(chuàng)建進程測.11 4.2 選擇進程調(diào)度算法測試.11 4.3 先來先服務調(diào)度測.114.4 時間片輪轉調(diào)度測試.124.5 優(yōu)先級調(diào)度測試.134.6 多級反饋隊列調(diào)度.134.1 測試分

14、析.15總 結 .16致 謝 .17 參考文獻 .18 附錄 主要程序代碼 .19 摘 要本次課程設計主要是更進一步了解進程調(diào)度的實質(zhì)和功能,能夠運用面向對象的c+語言模擬進程調(diào)度的一些算法,為以后相關的學習和實習打下一定的基礎。運用c+編寫模擬進程調(diào)度算法的程序,加深對進程和進程調(diào)度的理解。進程調(diào)度常用的算法有:先來先服務調(diào)度,優(yōu)先級調(diào)度調(diào)度,時間片輪轉調(diào)度和多級反饋隊列調(diào)度。本次課程設計就將模擬先來先服務,時間片輪轉,短作業(yè)優(yōu)先,優(yōu)先級和多級反饋隊列5中調(diào)度算法,并對他們的性能進行比較。程序提供了創(chuàng)建進程,選擇進程調(diào)度算法的基本功能。首先應該設計數(shù)據(jù)結構,創(chuàng)建了進城結構體。然后認真設計每一

15、個進程調(diào)度的算法,并運用程序加以實現(xiàn)。算法設計完畢后就該調(diào)試整體程序,調(diào)試完畢后就測試程序,并比較在不同運行環(huán)境下各種進程調(diào)度的優(yōu)劣。理論上多級反饋隊列調(diào)度算法應該是一種比較好的調(diào)度算法,在最后的測試中也驗證了這一點。關鍵詞:進程; 進程調(diào)度; 數(shù)據(jù)結構; 算法abstractthe courses are primarily designed to further understand the nature and function of process scheduling, to use object-oriented c + + language the process of sche

16、duling a number of simulation algorithms for future study and practice related to lay a foundation. c + + and simulated using the process scheduling program, to deepen the understanding of processes and process scheduling.process scheduling algorithms commonly used are: a first-come first-served sch

17、eduling, priority scheduling scheduling, round-robin scheduling and multi-level feedback queue scheduling. the course design will be simulated first-come, first serve, round-robin, short job priority, priority and multi-level feedback queue scheduling algorithm 5, and compare their performance. prog

18、ram provides the creation process, choose the basic function of process scheduling algorithms.first, the data structure should be designed to create a city structure. then carefully designed scheduling algorithms for each process, and use the program to be achieved. algorithm design is completed aft

19、er the whole program debugging, debugging is completed after the testing procedures, and compare the different operating environments in the process of scheduling all the pros and cons.theoretical multi-level feedback queue scheduling algorithm should be a good scheduling algorithm, in the final tes

20、t also verified this.keywords: process; process scheduling; data structure; algorithm朗讀字典朗讀顯示對應的拉丁字符的拼音字典朗讀顯示對應的拉丁字符的拼音字典朗讀顯示對應的拉丁字符的拼音字典第一章 課題概述1.1 課題背景 在多道程序環(huán)境下,主存中有著多個進程,其數(shù)目往往多于處理機數(shù)目,要使這多個進程能夠并發(fā)地執(zhí)行,這就要求系統(tǒng)能按某種算法,動態(tài)地把處理機分配給就緒隊列中的一個進程,使之執(zhí)行。分配處理機的任務是由處理機調(diào)度程序完成的。由于處理機是最重要的計算機資源,提高處理機的利用率及改善系統(tǒng)必(吞吐量、響應時

21、間),在很大程度上取決于處理機調(diào)度性能的好壞,因而,處理機調(diào)度便成為操作系統(tǒng)設計的中心問題之一。1.2 進程調(diào)度簡介 進程調(diào)度的對象是進程(或內(nèi)核級線程),它是一種最基本的調(diào)度,在單批道處理、分時和實現(xiàn)三種類型的os中,都必須配置這級調(diào)度。1.2.1 進程調(diào)度的功能 進程調(diào)度的主要功能如下: (1)保存處理機的現(xiàn)場信息 (2)按照某種算法選取進程 (3)把處理器分配給進程1.2.2 進程調(diào)度的三個基本機制 為了實現(xiàn)進程調(diào)度,應具有以下三個基本機制: (1)排隊器:為了提高進程調(diào)度效率,事先將所有就緒進程按照一定的方式排成一個或者多個隊列,方便查找。 (2)分派器:把由進程調(diào)度程序所選定的進程,

22、從就緒隊列中取出來,然后施行上下文切換,將處理機分配給它。 (3)上下文切換機制:對處理機進行切換就能引發(fā)上下文切換操作。1.2.3 進程調(diào)度方式 進程調(diào)度有非搶占方式和搶占方式兩種。 非搶占方式:一旦將處理機分配給某進程后,不管它要運行多長時間,都要一直讓他運行下去,絕不會因為時鐘中斷等原因而搶占正在運行的處理機,也不允許其他進程搶占已經(jīng)分配給他的處理機。直到該進程完成,自愿釋放處理機。 搶占方式:這種調(diào)度方式允許調(diào)度程序根據(jù)某種原則去暫停某個正在執(zhí)行的進程,將已經(jīng)分配給該進程的處理機重新分配給另一個進程。但搶占調(diào)度方式基于以下原則:優(yōu)先權原則、段作業(yè)(進程)優(yōu)先原則、時間片原則。1.2.4

23、 進程調(diào)度原因 引起進程調(diào)度的原因有以下幾類:(1)正在執(zhí)行的進程執(zhí)行完畢。這時,如果不選擇新的就緒進程執(zhí)行,將浪費處理機資源。 (2)執(zhí)行中進程自己調(diào)用阻塞原語將白己阻塞起來進入睡眠等狀態(tài)。 (3)執(zhí)行中進程調(diào)用了p原語操作,從而因資源不足而被阻塞;或調(diào)用了v原語操作激活了等待資源的進程隊列。 (4)執(zhí)行中進程提出i/o請求后被阻塞。 (5)在分時系統(tǒng)中時間片已經(jīng)用完。 (6)在執(zhí)行完系統(tǒng)調(diào)用等系統(tǒng)程序后返回用戶進程時,這時可看作系統(tǒng)進程執(zhí)行完畢,從而可調(diào)度選擇一新的用戶進程執(zhí)行。 (7)就緒隊列中的某進程的優(yōu)先級變得高于當前執(zhí)行進程的優(yōu)先級,從而也將引發(fā)進程調(diào)度1.3 課題目的用c+編程實

24、現(xiàn)操作模擬操作系統(tǒng)進程調(diào)度子系統(tǒng)的基本功能;實現(xiàn)先來先服務、時間片輪轉、多級反饋輪轉法對進程進行的調(diào)度過程。1.4 課題意義 本次課程設計主要是進一步了解操作系統(tǒng)中的進程調(diào)度,能夠熟練運用c+編程實現(xiàn)進程調(diào)度的基本功能。為之后的學習和實習打下了一定的基礎。第二章 設計簡介及設計方案論述2.1 設計構想 程序能夠完成以下操作:創(chuàng)建進程:先輸入進程的數(shù)目,再一次輸入每個進程的進程名、運行總時間和優(yōu)先級,先到達的先輸入;進程調(diào)度:進程創(chuàng)建完成后就選擇進程調(diào)度算法,并單步執(zhí)行,每次執(zhí)行的結果都從屏幕上輸出來。2.2 問題及技術要求問題1:進程結構體如何創(chuàng)建,應包含哪些有效信息問題2:各種進程調(diào)度算法如

25、何設計問題3:模塊的劃分,函數(shù)功能的定義技術要求:能夠熟練掌握c+,數(shù)據(jù)結構也有基本的底子。操作系統(tǒng)關于進程調(diào)度的知識熟練掌握。2.3 理論依據(jù)為了描述和管制進程的運行,系統(tǒng)為每個進程定義了一個數(shù)據(jù)結構進程控制塊pcb(process control block),pcb中記錄了操作系統(tǒng)所需的、用于描述進程的當前情況以及控制進程運行的全部信息,系統(tǒng)總是通過pcb對進程進行控制,亦即,系統(tǒng)是根據(jù)進程的pcb而不是任何別的什么而感知進程的存在的,pcb是進程存在的惟一標志。本次課程設計用結構體process代替pcb的功能。2.4方案論述2.4.1 數(shù)據(jù)結構設計一種數(shù)據(jù)結構process,提供關于

26、進程的一些有效信息:進程名,運行總時間,剩余時間,優(yōu)先級。typedef struct qnodestring processname;/進程名int priority;/進程優(yōu)先級int alltime;/進程運行需要時間int lefttime;/完成進程還需的時間node, *process; 2.4.2 算法設計 1.先來先服務調(diào)度算法: 先按照進入cpu的時間將所有進程一次存入隊列(先進入cpu的存在靠近隊首位置),然后每次將隊首位置的進程調(diào)入內(nèi)存,為他分配資源,投入運行,直到該進程完全運行完畢,再接著調(diào)入隊首進程,直到隊列為空。 2.時間片輪轉調(diào)度算法: 所有就緒進程按先來先服務的

27、原則排成一個隊列,將新來的進程加到就緒對列的末尾,每當執(zhí)行進程調(diào)度時,總是把處理機分配給隊首的進程,各進程占用cpu的時間片相同。也就是說cpu的處理時間劃分成一個個相同的時間片,就緒隊列的所有進程輪流運行一個時間片。當一個時間片結束時,如果運行進程用完它的時間片后還未完成,就強迫運行進程讓出cpu,就把它送回到就緒隊列的末尾,等待下一次調(diào)度。同時,進程調(diào)度又去選擇就緒隊列中的隊首進程,分配給它一時間片,以投入運行。直至所有的進程運行完畢。 3.優(yōu)先級調(diào)度算法: 進程調(diào)度每次是把cpu分配給就緒隊列中優(yōu)先數(shù)最高的進程??梢韵葘⑺芯途w進程按照優(yōu)先級由大到小的順序排列,依次存入隊列,然后每次優(yōu)先

28、運行隊首進程,直到隊列為空。 4.短作業(yè)優(yōu)先調(diào)度算法: 先將所有就緒隊列按照剩余時間由小到大的順序排列,并依次存入隊列,再按照先來先服務方法執(zhí)行下去。 5.多級反饋隊列調(diào)度算法:允許進程在隊列之間移動。在系統(tǒng)中設置多個就緒隊列,每個隊列對應一個優(yōu)先級,第一個隊列的優(yōu)先級最高,第二隊列次之。以下各隊列的優(yōu)先級逐步低。各就緒隊列中的進程的運行時間片不同,高優(yōu)先級隊列的時間片小,低優(yōu)先級隊列的時間片大。進程并非總是固定在某一隊列中,新進程進入系統(tǒng)后,被存放在第一個隊列的末尾。如果某個進程在規(guī)定的時間片內(nèi)沒有完成工作,則把它轉入到下一個隊列的末尾,直至進入最后一個隊列。系統(tǒng)先運行第一個隊列中的進程。當

29、第一隊列為空時,才運行第二個隊列中的進程。依此類推,僅當前面所有的隊列都為空時,才運行最后一個隊列中的進程。當處理器正在第i個隊列中為某個進程服務時,又有新進程進入優(yōu)先級最高的隊列(第1(i-1)中的任何一個對列),則此新進程要搶占正在運行進程的處理器,即由調(diào)度程序把正在運行的進程放回第i隊列的末尾,把處理器分配給新到的高優(yōu)先級進程。除最低優(yōu)先權隊列外的所有其他隊列,均采用相同的進程調(diào)度算法,即按時間片輪轉的fifo(先進先出)算法。最后一個隊列中的進程按按時間片輪轉或fcfs策略進行調(diào)度。它是綜合了fifo、rr和剝奪式hpf的一種進程調(diào)度算法2.4.3 替換思想 鑒于隊列的輸出比較麻煩,為

30、了便于隨時輸出每個就緒進程的有效信息,故在此次課程設計中用數(shù)組模擬隊列的功能(主要是先進先出的功能),即用數(shù)組替換隊列。每次都只運行數(shù)組中的第一個進程a0. 用指針型結構體*process代替進程控制塊pcb的功能。第三章 詳細設計3.1 數(shù)據(jù)結構 定義指針型結構體*process(代替進程控制塊pcb)typedef struct qnodestring processname;/進程名 int priority;/進程優(yōu)先級 int alltime;/進程運行需要時間 int lefttime;/完成進程還需的時間node, *process;string型的進程名,int型的優(yōu)先級、總時

31、間和剩余時間。3.2 功能劃分 模擬進程調(diào)度應該有以下基本功能:創(chuàng)建進程(輸入進程的有效信息),進程調(diào)度(能夠自由選擇進程調(diào)度方式)和輸出狀態(tài)(能夠輸出每一步所有進程的狀態(tài))。3.3 算法流程圖3.3.1先來先服務調(diào)度 根據(jù)設計的算法畫先來先服務進程調(diào)度流程圖如圖3-1所示: 圖3-1先來先服務流程圖3.3.2 優(yōu)先級調(diào)度根據(jù)設計的算法優(yōu)先級調(diào)度進程調(diào)度流程圖如圖3-2所示: 圖3-2優(yōu)先級調(diào)度流程圖3.3.3 時間片輪轉調(diào)度根據(jù)設計的算法畫時間片輪轉流程圖如圖3-3所示 圖3-3時間片輪轉進程調(diào)度流程圖3.3.4 多級反饋隊列調(diào)度根據(jù)設計的算法畫多級反饋隊列流程圖如圖3-4所示 圖3-4多級

32、反饋隊列調(diào)度流程圖3.4 函數(shù)功能定義 需要定義以下功能函數(shù): void sort( process process, int size); / 按優(yōu)先級從大到小排列void sort1(process process, int size); / 按運行時間時間從小到大排列void fcfs( process process, int num, int timepice); / 先來先服務算法void timeturn(process process, int num, int timepice); / 時間片輪轉算法void priorityprocess(process process,

33、int num, int timepice); / 優(yōu)先級算法void queueprocess(process process, int num, int timepice,process a1,process a2,process a3);/多級反饋隊列調(diào)度第四章 設計結果及分析4.1 創(chuàng)建進程測試 用戶創(chuàng)建進程的界面如圖4-1所示. 圖4-1 創(chuàng)建進程4.2 選擇進程調(diào)度算法測試 用戶選擇進程調(diào)度算法界面如圖4-2所示。 圖4-2 選擇進程調(diào)度算法 4.3 先來先服務調(diào)度測試 先來先服務調(diào)度算法運行情況如圖4-3,圖4-4,圖4-5所示。 圖4-3 所有的進程都在隊列中 圖4-4 其中一

34、個進程執(zhí)行完畢 圖4-5 所有的進程都執(zhí)行完畢4.4 時間片輪轉調(diào)度測試 時間片輪轉調(diào)度算法運行情況如圖4-6,圖4-7,圖4-8所示 圖4-6 所有的進程都在隊列中 圖4-7 其中一個進程執(zhí)行完畢 圖4-8 所有的進程都執(zhí)行完畢4.5 優(yōu)先級調(diào)度測試 優(yōu)先級調(diào)度算法運行情況如圖4-9,圖4-10,圖4-11所示。 圖4-9 所有的進程都在隊列中 圖4-10 其中一個進程執(zhí)行完畢 圖4-11 所有的進程都執(zhí)行完畢4.6 多級反饋隊列調(diào)度測試 多級反饋隊列調(diào)度算法運行情況如圖4-12到圖4-15所示。 圖4-12 當前執(zhí)行第一隊列 圖4-13 第一隊列執(zhí)行完,當前執(zhí)行第二隊列 圖4-14 第二隊

35、列執(zhí)行完,當前執(zhí)行第三隊列 圖4-15 所有進程都已經(jīng)執(zhí)行完畢4.7 測試分析分析測試結果知:fcfs算法比較有利于長作業(yè)(進程),而不利于短作業(yè)(進程);短作業(yè)優(yōu)先調(diào)度算法對長作業(yè)不利,可能導致長作業(yè)長時間不被調(diào)度;優(yōu)先及調(diào)度算法則保證了緊迫進程,而那些優(yōu)先級較低的則可能長時間得不到調(diào)度;時間片輪轉算法則算是對每個進程都是公平的,減少了進程的等待時間;綜合考慮,多級反饋隊列調(diào)度算法則是綜合fcfs,短作業(yè)優(yōu)先,時間片輪轉和優(yōu)先級調(diào)度算法的優(yōu)點,故多級反饋隊列調(diào)度對大多數(shù)進程調(diào)度來說是一種最佳的調(diào)度算法,但具體算法則應根據(jù)實際需求選擇???結經(jīng)過本次課程設計,我對操作系統(tǒng)中的進程和進程調(diào)度有了

36、更進一步的認識和了解,能夠熟練掌握常用的進程調(diào)度算法。認識到多級反饋隊列調(diào)度一般來說是最佳的算法,但也有例外,我們應該根據(jù)實際需求確定最佳的進程調(diào)度算法。本次課程設計大量運用到了數(shù)據(jù)結構中的知識,數(shù)據(jù)結構中的一些算法我也能靈活運用在操作系統(tǒng)的設計?;仡櫛敬握n程設計,我運用了多個學科的知識,這給了我一些啟發(fā),在今后的學習中我們要多多將各科的知識融會貫通,綜合運用。雖然本次課程設計我已經(jīng)完成了,但我還覺得不足。沒能完成進程的阻塞和喚醒這兩個功能,這也是我知識所限,我要更加努力。致 謝 本次課程設計我能夠順利完成要感謝好多人:操作系統(tǒng)的胡宏銀老師在課堂上詳細給我們介紹了進程調(diào)度的算法,這是完成本次實

37、驗的基礎。也要感謝數(shù)據(jù)結構的姚峰老師,他教授了我大量關于數(shù)據(jù)結構的知識,對本次課程設計也很重要。最后要感謝劉瑋和呂濤老師在課堂上對我的指導,也要感謝一些同學在課下對我的幫助。參考文獻1 湯小丹,梁紅兵,等計算機操作系統(tǒng)(第三版)m西安:西安電子科技大學出版社,2007年2 嚴蔚敏,吳偉明數(shù)據(jù)結構(c語言版)m 北京:清華大學出版社,2007年3 陳銳零基礎學數(shù)據(jù)結構m 北京:機械工業(yè)出版社,2010年4 張堯學.計算機操作系統(tǒng)教程(第2版)習題與實驗指導m . 北京: 清華大學出版社,2009年附錄主要程序代碼:#include #include #define size 100#define

38、 overflow nullusing namespace std;/構建進程結構體typedef struct qnodestring processname;/進程名int priority;/進程優(yōu)先級int alltime;/進程運行需要時間int lefttime;/完成進程還需的時間node, *process;/函數(shù)聲明void sort( process process, int size); / 按優(yōu)先級從大到小排列void sort1(process process, int size); / 按運行時間時間從小到大排列void fcfs( process process,

39、 int num, int timepice); / 先來先服務算法void timeturn(process process, int num, int timepice); / 時間片輪轉算法void priorityprocess(process process, int num, int timepice); / 優(yōu)先級算法void queueprocess(process process, int num, int timepice,process a1,process a2,process a3);/多級反饋隊列/主函數(shù)void main() int a;process *proc

40、ess= new process size;process *a1= new process size;/用數(shù)組模擬隊列的功能process *a2= new process size;process *a3= new process size;for(int i=0;isize;i+)/指針數(shù)組初始化processi=new qnode;a1i=new qnode;a2i=new qnode;a3i=new qnode;for(int i1=0;isize;i+)a1i=new qnode; int num;coutnum;for(int j=0; jnum; j+) string name

41、; int cputime; int leval; cout輸入第 j+1name; cincputimeleval; processj-processname=name; processj-alltime=cputime; processj-priority=leval; for(int k=0;klefttime=processk-alltime;/對進程剩余時間初始化 coutendl; cout1:先來先服務 2:時間片輪換 3:優(yōu)先級調(diào)度 4:最短作業(yè)優(yōu)先 5:多級反饋隊列調(diào)度endl;couta; int timepice;/時間片大小 couttimepice;system(pause);system(cls); if(a=1) fcfs

溫馨提示

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

評論

0/150

提交評論