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

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)科學(xué)與工程學(xué)院綜合設(shè)計(jì)報(bào)告設(shè)計(jì)名稱:操作系統(tǒng)軟件綜合設(shè)計(jì)設(shè)計(jì)題目:進(jìn)程調(diào)度算法模擬學(xué)生學(xué)號(hào):專業(yè)班級(jí):學(xué)生姓名:學(xué)生成績(jī):指導(dǎo)教師(職稱):課題工作時(shí)間:2013-6-仃至 2013-6-28說明:1、報(bào)告中的第一、二、三項(xiàng)由指導(dǎo)教師在綜合設(shè)計(jì)開始前填寫并發(fā)給每個(gè)學(xué)生;四、五兩項(xiàng)(中英文摘要)由學(xué)生在完成綜合設(shè)計(jì)后填寫。2、學(xué)生成績(jī)由指導(dǎo)教師根據(jù)學(xué)生的設(shè)計(jì)情況給出各項(xiàng)分值及總評(píng)成績(jī)。3、指導(dǎo)教師評(píng)語(yǔ)一欄由指導(dǎo)教師就學(xué)生在整個(gè)設(shè)計(jì)期間的平時(shí)表現(xiàn)、設(shè)計(jì) 完成情況、報(bào)告的質(zhì)量及答辯情況,給出客觀、全面的評(píng)價(jià)。4、所有學(xué)生必須參加綜合設(shè)計(jì)的答辯環(huán)節(jié),凡不參加答辯者,其成績(jī)一律 按不及格處理。答辯

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

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

4、5在規(guī)定時(shí)間內(nèi)能準(zhǔn)確、完整、流利 地回答教師所提出的問題??傇u(píng)成績(jī):分補(bǔ)充說明:指導(dǎo)教師:(簽字)日期:_2013年一6_月 28日答辯記錄表學(xué)生姓名:學(xué)號(hào):班級(jí):答辯地點(diǎn):答辯內(nèi)容記錄:答-1亠 辯 成 績(jī)合計(jì) 分值各項(xiàng) 分值評(píng)分標(biāo)準(zhǔn)實(shí)際 得分合計(jì) 得分備注2510在規(guī)定時(shí)間內(nèi)能就所設(shè)計(jì)的內(nèi)容 進(jìn)行闡述,言簡(jiǎn)意明,重點(diǎn)突出, 論點(diǎn)正確,條理清晰。15在規(guī)定時(shí)間內(nèi)能準(zhǔn)確、完整、流 利地回答教師所提出的問題。答辯小組成員(簽字):2013年6月28 日指導(dǎo)教師評(píng)語(yǔ)指導(dǎo)教師:(簽字)日 期:2013年6月 27 日一、綜合設(shè)計(jì)目的、條件、任務(wù)和內(nèi)容要求:目的設(shè)計(jì)程序來模擬進(jìn)程調(diào)度的四種調(diào)度算法。通

5、過進(jìn)程調(diào)度程序的設(shè)計(jì),熟悉和了 解進(jìn)程控制塊、進(jìn)程隊(duì)列、調(diào)度算法等概念,從而加深和理解處理機(jī)管理的核心內(nèi)容, 加深對(duì)操作系統(tǒng)原理課程的理解,鞏固已經(jīng)學(xué)過的基礎(chǔ)課及專業(yè)課知識(shí),開闊學(xué)生的 視野,鍛煉學(xué)生的自學(xué)能力及獨(dú)立動(dòng)手能力等。條件計(jì)算機(jī),Visual C+或者JDK開發(fā)平臺(tái)(MyEclipse)任務(wù)1 用語(yǔ)言來實(shí)現(xiàn)對(duì)n個(gè)進(jìn)程采用不同調(diào)度算法的調(diào)度進(jìn)程2. 每個(gè)用來標(biāo)識(shí)進(jìn)程的進(jìn)程控制塊 PCB用結(jié)構(gòu)來描述,包括以下字段:(1) 進(jìn)程優(yōu)先數(shù)ID,其中0為閑逛進(jìn)程,用戶進(jìn)程的標(biāo)識(shí)數(shù)為 1, 2, 3。(2) 進(jìn)程優(yōu)先級(jí)Priority,閑逛進(jìn)程(idle)的優(yōu)先級(jí)為0,用戶進(jìn)程的優(yōu)先級(jí)大 于0,且

6、隨機(jī)產(chǎn)生,優(yōu)先數(shù)越大,優(yōu)先級(jí)越高。(3) 進(jìn)程占用的CPU時(shí)間CPUtime,進(jìn)程每運(yùn)行一次,累計(jì)值等于 4。(4) 進(jìn)程總共需要運(yùn)行時(shí)間 Alltime,利用隨機(jī)函數(shù)產(chǎn)生。(5) 進(jìn)程狀態(tài),0:就緒態(tài);1:運(yùn)行態(tài);2:阻塞態(tài)。3. 優(yōu)先數(shù)改變的原則(1) 進(jìn)程在就緒隊(duì)列中每呆一個(gè)時(shí)間片,優(yōu)先數(shù)增加1o(2) 進(jìn)程每運(yùn)行一個(gè)時(shí)間片,優(yōu)先數(shù)減 3o4.0內(nèi)容要求(1) 提示用戶選擇想要模擬的進(jìn)程調(diào)度算法,并輸入待執(zhí)行的進(jìn)程的數(shù)目n。(2) 由系統(tǒng)自動(dòng)創(chuàng)建n+1個(gè)進(jìn)程控制塊(第一個(gè)作為頭結(jié)點(diǎn)暫且不用),為每 一個(gè)進(jìn)程控制塊進(jìn)行初始化設(shè)置,并且鏈接成一個(gè)鏈表,作為一個(gè)就緒隊(duì)列。(3) 按照用戶的要求

7、選擇一個(gè)進(jìn)程調(diào)度算法來執(zhí)行。(4) 輸出進(jìn)程調(diào)度算法執(zhí)行后的結(jié)果。(5) 提示用戶進(jìn)行下一輪的進(jìn)程調(diào)度算法模擬。指導(dǎo)教師簽字:2013 年 6 月 15 日二、進(jìn)度安排:1. 發(fā)題:2013 .6 .152. 17周完成基本設(shè)計(jì)。3. 18周完成程序調(diào)試。4. 18周完成說明書的書寫,其中說明書的內(nèi)容包括:第一章、概述第二章、進(jìn)程調(diào)度設(shè)計(jì)思想和方法第三章、進(jìn)程調(diào)度程序和結(jié)果第四章、結(jié)束語(yǔ)第五章、參考文獻(xiàn)5. 18 周周四答辯。三、應(yīng)收集資料及主要參考文獻(xiàn):1. 嚴(yán)蔚敏;吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)M.北京:清華大學(xué)出版社.2007年4月.2. 嚴(yán)蔚敏;吳偉民.數(shù)據(jù)結(jié)構(gòu)教程學(xué)習(xí)指導(dǎo)M.北京:清華

8、大學(xué)出版社.2005年4月.3. 葉核亞.數(shù)據(jù)結(jié)構(gòu)(Java版)(第2版)M.北京:電子工業(yè)出版社.2008年7月.4. 湯子瀛.計(jì)算機(jī)操作系統(tǒng)(修訂版)M.西安:西安電子科技大學(xué)出版社.2001年 8月.5. 譚耀鉻.操作系統(tǒng)(2007版)M.北京:中國(guó)人民大學(xué)出版社.2007年7月.6. 張永常.Java程序設(shè)計(jì)實(shí)用教程M.北京:電子工業(yè)出版社.2006年8月.7. 譚浩強(qiáng).C程序設(shè)計(jì)(第二版)M.北京:清華大學(xué)出版社.1999年12月.四、綜合設(shè)計(jì)(課程設(shè)計(jì))摘要(中文):在OS中調(diào)度的實(shí)質(zhì)是一種資源分配,因而調(diào)度算法是指:根據(jù)系統(tǒng)的資 源分配策略所規(guī)定的資源分配算法。進(jìn)程調(diào)度常用的算法

9、有:先來先服務(wù)調(diào)度、 優(yōu)先級(jí)調(diào)度、時(shí)間片輪轉(zhuǎn)調(diào)度和多級(jí)反饋隊(duì)列調(diào)度。本次課程設(shè)計(jì)將就模擬先 來先服務(wù)、時(shí)間片輪轉(zhuǎn)、短作業(yè)優(yōu)先、優(yōu)先級(jí)和多級(jí)反饋隊(duì)列五種調(diào)度算法進(jìn) 行設(shè)計(jì)并對(duì)他們的性能進(jìn)行比較,程序提供了創(chuàng)建進(jìn)程,選擇進(jìn)程調(diào)度算法的 基本功能。首先應(yīng)該設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),創(chuàng)建進(jìn)程結(jié)構(gòu)體,然后認(rèn)真設(shè)計(jì)每一個(gè)進(jìn)程調(diào)度 的算法,并運(yùn)用程序加以實(shí)現(xiàn),算法設(shè)計(jì)完畢后調(diào)試整體程序并測(cè)試,比較在 不同環(huán)境下各種進(jìn)程調(diào)度的優(yōu)劣。目前存在的多種調(diào)度算法中,有的短發(fā)適用于作業(yè)調(diào)度,有的算法適用于進(jìn) 程調(diào)度;但也有些調(diào)度算法既可用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。關(guān)鍵詞:進(jìn)程;進(jìn)程調(diào)度;數(shù)據(jù)結(jié)構(gòu);算法五、綜合設(shè)計(jì)(課程設(shè)計(jì))A

10、bstract (英文):The OS scheduli ng is a kind of resource allocatio n in esse nee , and scheduli ng algorithm is a resource allocati on algorithm based on the system of resource allocati on algorithm prin ciples. Process scheduli ng algorithms com monly used are: a first-come first-served scheduli ng, p

11、riority scheduli ng, ro un d-rob in scheduli ng and multi-lever feedback queue scheduli ng algorithms, and compari ng their performa nee. Program provides the creati on process, choos ing the basic function of process scheduli ng algorithms.First, the data structure should be desig ned to create a s

12、tructure. Then, scheduli ng algorithms should be desig ned carefully for each process, and use the program to achieve those process. Algorithms scheduli ng is completed after the whole program debugg ing, debugg ing is completed after the test ing procedures, and compari ng the differe nt operat ing

13、 en vir onments in the process of scheduli ng in pros and cons.There are many kinds of scheduli ng algorithms. Some is suitable for job scheduli ng, and some is for process scheduli ng. But there are some scheduli ng algorithms which are both suitable for job scheduli ng and process scheduli ng.Keyw

14、ords: Process; Process Scheduling; Data Structure; Algorithm目錄摘要IIABSTRACT III第一章課題背景11.1課題背景11.2進(jìn)程調(diào)度簡(jiǎn)介11.3課題目的31.4課題意義3第二章 設(shè)計(jì)簡(jiǎn)介及設(shè)計(jì)方案論述 42.1步驟簡(jiǎn)介42.2設(shè)計(jì)要點(diǎn)42.3具體方案4第三章詳細(xì)設(shè)計(jì)73.1設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)73.2模擬進(jìn)程調(diào)度73.3算法流程圖73.4主要函數(shù)定義12第四章 設(shè)計(jì)結(jié)果及分析134.1創(chuàng)建進(jìn)程134.2選擇進(jìn)程調(diào)度 134.3先來先服務(wù)調(diào)度134.4時(shí)間片輪轉(zhuǎn)調(diào)度 144.5優(yōu)先級(jí)調(diào)度144.6多級(jí)反饋隊(duì)列調(diào)度154.7性能分析15

15、總結(jié)17致謝18參考文獻(xiàn)19附錄20摘要在OS中調(diào)度的實(shí)質(zhì)是一種資源分配,因而調(diào)度算法是指:根據(jù)系統(tǒng)的資源分配 策略所規(guī)定的資源分配算法。進(jìn)程調(diào)度常用的算法有:先來先服務(wù)調(diào)度、優(yōu)先級(jí)調(diào)度、 時(shí)間片輪轉(zhuǎn)調(diào)度和多級(jí)反饋隊(duì)列調(diào)度。本次課程設(shè)計(jì)將就模擬先來先服務(wù)、時(shí)間片輪 轉(zhuǎn)、短作業(yè)優(yōu)先、優(yōu)先級(jí)和多級(jí)反饋隊(duì)列五種調(diào)度算法進(jìn)行設(shè)計(jì)并對(duì)他們的性能進(jìn)行 比較,程序提供了創(chuàng)建進(jìn)程,選擇進(jìn)程調(diào)度算法的基本功能。首先應(yīng)該設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),創(chuàng)建進(jìn)程結(jié)構(gòu)體,然后認(rèn)真設(shè)計(jì)每一個(gè)進(jìn)程調(diào)度的算法, 并運(yùn)用程序加以實(shí)現(xiàn),算法設(shè)計(jì)完畢后調(diào)試整體程序并測(cè)試, 比較在不同環(huán)境下各種 進(jìn)程調(diào)度的優(yōu)劣。目前存在的多種調(diào)度算法中,有的短發(fā)適

16、用于作業(yè)調(diào)度,有的算法適用于進(jìn)程調(diào)度; 但也有些調(diào)度算法既可用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。關(guān)鍵詞:進(jìn)程;進(jìn)程調(diào)度;數(shù)據(jù)結(jié)構(gòu);算法AbstractThe OS scheduli ng is a kind of resource allocati on in esse nee, and scheduli ng algorithm is a resource allocatio n algorithm based on the system of resource allocati on algorithm principles. Process scheduling algorithms com

17、monly used are: a first-come first-served scheduling, priority scheduling, round-robin scheduling and multi-lever feedback queue scheduling algorithms, and comparing their performanee. Program provides the creation process, choosing the basic function of process scheduling algorithms.First, the data

18、 structure should be desig ned to create a structure. The n, scheduli ng algorithms should be desig ned carefully for each process, and use the program to achieve those process. Algorithms scheduling is completed after the whole program debugging, debugg ing is completed after the testi ng procedure

19、s, and compari ng the differe nt operat ing en vir onments in the process of scheduli ng in pros and cons.There are many kinds of scheduli ng algorithms. Some is suitable for job scheduli ng, and some is for process scheduli ng. But there are some scheduli ng algorithms which are both suitable for j

20、ob scheduli ng and process scheduli ng.Keywords: Process; process scheduling; data structure; algorithm第一章課題背景1.1課題背景在多道程序環(huán)境下,主存中有著多個(gè)進(jìn)程,其數(shù)目往往多于處理機(jī)數(shù)目,要使這多 個(gè)進(jìn)程能夠并發(fā)地執(zhí)行、這就要求系統(tǒng)能按某種算法,動(dòng)態(tài)的把處理機(jī)分配給就緒隊(duì)列 中的一個(gè)進(jìn)程,使之執(zhí)行。分配處理機(jī)的任務(wù)是由處理機(jī)調(diào)度程序完成的。由于處理機(jī) 時(shí)最重要的計(jì)算機(jī)資源,提高處理機(jī)的利用率幾改善系統(tǒng)(吞吐量、響應(yīng)時(shí)間)在很大 程度上取決于處理機(jī)調(diào)度性能的好壞,因而,處理機(jī)調(diào)度便成為操

21、作系統(tǒng)設(shè)計(jì)的中心問 題之一。1.2進(jìn)程調(diào)度簡(jiǎn)介進(jìn)程調(diào)度的對(duì)象時(shí)進(jìn)程(或內(nèi)核級(jí)線程),它是一種基本的調(diào)度,在單批道處理、分 時(shí)和實(shí)現(xiàn)三種類型的os中,都必須配置這級(jí)調(diào)度 。1.2.1進(jìn)程調(diào)度的功能(1) 記錄系統(tǒng)中所有進(jìn)程的執(zhí)行情況作為進(jìn)程調(diào)度的準(zhǔn)備,進(jìn)程管理模塊必須將系統(tǒng)中各進(jìn)程的執(zhí)行情況和狀態(tài)特 征記錄在各進(jìn)程的PCB表中。并且,根據(jù)各進(jìn)程的狀態(tài)特征和資源需求等、進(jìn)程管 理模塊還將各進(jìn)程的PCB表排成相應(yīng)的隊(duì)列并進(jìn)行動(dòng)態(tài)隊(duì)列轉(zhuǎn)接。進(jìn)程調(diào)度模塊通 過PCB變化來掌握系統(tǒng)中存在的所有進(jìn)程的執(zhí)行情況和狀態(tài)特征,并在適當(dāng)?shù)臅r(shí)機(jī) 從就緒隊(duì)列中選擇出一個(gè)進(jìn)程占據(jù)處理機(jī)。(2) 選擇占有處理機(jī)的進(jìn)程進(jìn)程調(diào)

22、度的主要功能是按照一定的策略選擇一個(gè)處于就緒狀態(tài)的進(jìn)程,使其獲 得處理機(jī)執(zhí)行。根據(jù)不同的系統(tǒng)設(shè)計(jì)目的,有各種各樣的選擇策略,例如系統(tǒng)開銷 較少的靜態(tài)優(yōu)先數(shù)調(diào)度法,適合于分時(shí)系統(tǒng)的輪轉(zhuǎn)法(Round RoLin)和多級(jí)互饋輪轉(zhuǎn) 法(RoundRobin with Multip1e feedback)等。這些選擇策略決定了調(diào)度算法的性能。(3) 進(jìn)行進(jìn)程上下文切換個(gè)進(jìn)程的上下文(context)包括進(jìn)程的狀態(tài)、有關(guān)變量和數(shù)據(jù)結(jié)構(gòu)的值、機(jī)器 寄存器的值和PCB以及有關(guān)程序、數(shù)據(jù)等。一個(gè)進(jìn)程的執(zhí)行是在進(jìn)程的上下文中執(zhí) 行。當(dāng)正在執(zhí)行的進(jìn)程由于某種原因要讓出處理機(jī)時(shí),系統(tǒng)要做進(jìn)程上下文切換, 以使另一個(gè)

23、進(jìn)程得以執(zhí)行。當(dāng)進(jìn)行上下文切換時(shí)點(diǎn)統(tǒng)要首先檢查是否允許做上下文 切換(在有些情況下,上下文切換是不允許的,例如系統(tǒng)正在執(zhí)行某個(gè)不允許中斷的 原語(yǔ)時(shí))o然后,系統(tǒng)要保留有關(guān)被切換進(jìn)程的足夠信息,以便以后切換回該進(jìn)程時(shí), 順利恢復(fù)該進(jìn)程的執(zhí)行。在系統(tǒng)保留了 CPU現(xiàn)場(chǎng)之后,調(diào)度程序選擇一個(gè)新的處于 就緒狀態(tài)的進(jìn)程、并裝配該進(jìn)程的上下文,使 CPU勺控制權(quán)掌握在被選中進(jìn)程手中30122引起進(jìn)程調(diào)度的原因(1) 正在執(zhí)行的進(jìn)程執(zhí)行完畢或因發(fā)生某事件而不能再繼續(xù)執(zhí)行;(2) 執(zhí)行中的進(jìn)程因提出I/O請(qǐng)求而暫停執(zhí)行;(3)在進(jìn)程通信或同步過程中執(zhí)行了某種原語(yǔ)操作如P操作、阻塞、掛起原語(yǔ)等;(4)在可剝奪式

24、調(diào)度中,有比當(dāng)前進(jìn)程優(yōu)先權(quán)更咼的進(jìn)程進(jìn)入就緒隊(duì)列;(5)在時(shí)間片輪轉(zhuǎn)法中,時(shí)間片完 ;1.2.3進(jìn)程調(diào)度方式進(jìn)程調(diào)度有非搶占方式和搶占方式兩種:非搶占方式:一旦將處理機(jī)分配給某進(jìn)程后,不管它要運(yùn)行多長(zhǎng)時(shí)間,都要一直讓 他運(yùn)行下去,絕不會(huì)因?yàn)闀r(shí)鐘中斷等原因而搶占正在運(yùn)行的處理機(jī),也不允許其他進(jìn)程 搶占已經(jīng)分配給他的處理機(jī)。直到該進(jìn)程完成,自愿釋放處理機(jī)。搶占方式:這種調(diào)度方式允許調(diào)度程序根據(jù)某種原則去暫停某個(gè)正在執(zhí)行的進(jìn)程, 將已經(jīng)分配給該進(jìn)程的處理機(jī)重新分配給另一個(gè)進(jìn)程。但搶占調(diào)度方式基于以下原則: 優(yōu)先權(quán)原則、段作業(yè)進(jìn)程優(yōu)先原則、時(shí)間片原則5。1.2.4進(jìn)程調(diào)度的功能進(jìn)程調(diào)度的具體功能可總結(jié)

25、為如下幾點(diǎn):(1) 記錄系統(tǒng)中所有進(jìn)程的執(zhí)行情況(2) 作為進(jìn)程調(diào)度的準(zhǔn)備,進(jìn)程管理模塊必須將系統(tǒng)中各進(jìn)程的執(zhí)行情況和狀態(tài)特征記 錄在各進(jìn)程的PCB表中。并且,根據(jù)各進(jìn)程的狀態(tài)特征和資源需求等、進(jìn)程管理 模塊還將各進(jìn)程的PCB表排成相應(yīng)的隊(duì)列并進(jìn)行動(dòng)態(tài)隊(duì)列轉(zhuǎn)接。進(jìn)程調(diào)度模塊通 過PCB變化來掌握系統(tǒng)中存在的所有進(jìn)程的執(zhí)行情況和狀態(tài)特征,并在適當(dāng)?shù)臅r(shí) 機(jī)從就緒隊(duì)列中選擇出一個(gè)進(jìn)程占據(jù)處理機(jī)。(3) 選擇占有處理機(jī)的進(jìn)程(4) 進(jìn)程調(diào)度的主要功能是按照一定的策略選擇一個(gè)處于就緒狀態(tài)的進(jìn)程,使其獲得處 理機(jī)執(zhí)行。根據(jù)不同的系統(tǒng)設(shè)計(jì)目的,有各種各樣的選擇策略,例如系統(tǒng)開銷較少 的靜態(tài)優(yōu)先數(shù)調(diào)度法,適合

26、于分時(shí)系統(tǒng)的輪轉(zhuǎn)法 (Rou nd RoLi n)和多級(jí)互饋輪轉(zhuǎn)法 (Round Robin with Multip1e feedback)等。這些選擇策略決定了調(diào)度算法的性能。(3) 進(jìn)行進(jìn)程上下文切換個(gè)進(jìn)程的上下文(context)包括進(jìn)程的狀態(tài)、有關(guān)變量和數(shù)據(jù)結(jié)構(gòu)的值、機(jī)器寄存器 的值和PCB以及有關(guān)程序、數(shù)據(jù)等。一個(gè)進(jìn)程的執(zhí)行是在進(jìn)程的上下文中執(zhí)行。當(dāng) 正在執(zhí)行的進(jìn)程由于某種原因要讓出處理機(jī)時(shí),系統(tǒng)要做進(jìn)程上下文切換,以使另一 個(gè)進(jìn)程得以執(zhí)行。當(dāng)進(jìn)行上下文切換時(shí)點(diǎn)統(tǒng)要首先檢查是否允許做上下文切換(在有些情況下,上下文切換是不允許的,例如系統(tǒng)正在執(zhí)行某個(gè)不允許中斷的原語(yǔ)時(shí))。然后,系統(tǒng)要

27、保留有關(guān)被切換進(jìn)程的足夠信息, 以便以后切換回該進(jìn)程時(shí),順利恢復(fù) 該進(jìn)程的執(zhí)行。在系統(tǒng)保留了 CPU現(xiàn)場(chǎng)之后,調(diào)度程序選擇一個(gè)新的處于就緒狀態(tài) 的進(jìn)程、并裝配該進(jìn)程的上下文,使 CPU的控制權(quán)掌握在被選中進(jìn)程手中 。1.3課題目的通過課程設(shè)計(jì),加深對(duì)操作系統(tǒng)各資源管理模塊的理解,掌握操作系統(tǒng)的基本原理及 功能,具有初步分析實(shí)際操作系統(tǒng)、設(shè)計(jì)、構(gòu)造和開發(fā)現(xiàn)代操作系統(tǒng)的基本能力。1.4課題意義本次課程設(shè)計(jì)主要是進(jìn)一步了解操作系統(tǒng)中的進(jìn)程調(diào)度,能夠熟練運(yùn)用C+編程實(shí)現(xiàn)進(jìn)程調(diào)度的基本功能。為之后的學(xué)習(xí)和實(shí)習(xí)打下了一定的基礎(chǔ)。通過進(jìn)程調(diào)度程序的 設(shè)計(jì),熟悉和了解進(jìn)程控制快、進(jìn)程隊(duì)列、調(diào)度算法等概念,從而

28、加深和理解處理機(jī)管 理的核心內(nèi)容,加深對(duì)操作系統(tǒng)原理課程的理解,鞏固已經(jīng)學(xué)過的基礎(chǔ)課及專業(yè)課知識(shí), 開闊學(xué)生的視野,鍛煉學(xué)生的自學(xué)能力及獨(dú)立動(dòng)手能力等。第二章設(shè)計(jì)簡(jiǎn)介及設(shè)計(jì)方案論述2.1步驟簡(jiǎn)介(1) 提示用戶選擇想要模擬的進(jìn)程調(diào)度算法,并輸入待執(zhí)行的進(jìn)程的數(shù)目no(2) 由系統(tǒng)自動(dòng)創(chuàng)建n+1個(gè)進(jìn)程控制塊(第一個(gè)作為頭結(jié)點(diǎn)暫且不用),為每一個(gè)進(jìn)程 控制塊進(jìn)行初始化設(shè)置,并且鏈接成一個(gè)鏈表,作為一個(gè)就緒隊(duì)列。(3) 按照用戶的要求選擇一個(gè)進(jìn)程調(diào)度算法來執(zhí)行。(4) 輸出進(jìn)程調(diào)度算法執(zhí)行后的結(jié)果。(5) 提示用戶進(jìn)行下一輪的進(jìn)程調(diào)度算法模擬。2.2設(shè)計(jì)要點(diǎn)1 .用語(yǔ)言來實(shí)現(xiàn)對(duì)n個(gè)進(jìn)程采用不同調(diào)度算

29、法的調(diào)度進(jìn)程2. 每個(gè)用來標(biāo)識(shí)進(jìn)程的進(jìn)程控制塊 PCB用結(jié)構(gòu)來描述,包括以下字段:(1) 進(jìn)程優(yōu)先數(shù)ID,其中0為閑逛進(jìn)程,用戶進(jìn)程的標(biāo)識(shí)數(shù)為 1, 2, 3-o(2) 進(jìn)程優(yōu)先級(jí)Priority ,閑逛進(jìn)程(idle )的優(yōu)先級(jí)為0,用戶進(jìn)程的優(yōu)先級(jí)大于0, 且隨機(jī)產(chǎn)生,優(yōu)先數(shù)越大,優(yōu)先級(jí)越高。(3) 進(jìn)程占用的CPU寸間CPUtime進(jìn)程每運(yùn)行一次,累計(jì)值等于 4。(4) 進(jìn)程總共需要運(yùn)行時(shí)間 Alltime,利用隨機(jī)函數(shù)產(chǎn)生。(5) 進(jìn)程狀態(tài),0:就緒態(tài);1:運(yùn)行態(tài);2:阻塞態(tài)。3. 優(yōu)先數(shù)改變的原則(1) 進(jìn)程在就緒隊(duì)列中每待一個(gè)時(shí)間片,優(yōu)先數(shù)增加1o(2) 進(jìn)程每運(yùn)行一個(gè)時(shí)間片,優(yōu)先

30、數(shù)減 3o2.3具體方案2.3.1設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)一種數(shù)據(jù)結(jié)構(gòu)Process提供關(guān)于進(jìn)程的一些有效信息:進(jìn)程名,運(yùn)行總時(shí)間, 剩余時(shí)間,優(yōu)先級(jí)。typedef struct QNodestring ProcessName /進(jìn)程名int Priority : /進(jìn)程優(yōu)先級(jí)int AllTime;/進(jìn)程運(yùn)行需要時(shí)間int LeftTime : /完成進(jìn)程還需的時(shí)間)Node, ,kProcess242調(diào)度算法及設(shè)計(jì)原理1.先來先服務(wù)調(diào)度算法:先按照進(jìn)入CPU的時(shí)間將所有進(jìn)程一次存入隊(duì)列(先進(jìn)入 CPU的存在靠近 隊(duì)首位置),然后每次將隊(duì)首位置的進(jìn)程調(diào)入內(nèi)存,為他分配資源,投入運(yùn)行, 直到該進(jìn)程完

31、全運(yùn)行完畢,再接著調(diào)入隊(duì)首進(jìn)程,直到隊(duì)列為空。2 .時(shí)間片輪轉(zhuǎn)調(diào)度算法:所有就緒進(jìn)程按先來先服務(wù)的原則排成一個(gè)隊(duì)列,將新來的進(jìn)程加到就緒 對(duì)列的末尾,每當(dāng)執(zhí)行進(jìn)程調(diào)度時(shí),總是把處理機(jī)分配給隊(duì)首的進(jìn)程,各進(jìn)程 占用CPU的時(shí)間片相同。也就是說CPU的處理時(shí)間劃分成一個(gè)個(gè)相同的時(shí)間片, 就緒隊(duì)列的所有進(jìn)程輪流運(yùn)行一個(gè)時(shí)間片。當(dāng)一個(gè)時(shí)間片結(jié)束時(shí),如果運(yùn)行進(jìn) 程用完它的時(shí)間片后還未完成,就強(qiáng)迫運(yùn)行進(jìn)程讓出CPU,就把它送回到就緒隊(duì)列的末尾,等待下一次調(diào)度。同時(shí),進(jìn)程調(diào)度又去選擇就緒隊(duì)列中的隊(duì)首進(jìn)程, 分配給它一時(shí)間片,以投入運(yùn)行。直至所有的進(jìn)程運(yùn)行完畢。3 .優(yōu)先級(jí)調(diào)度算法:進(jìn)程調(diào)度每次是把CPU分配

32、給就緒隊(duì)列中優(yōu)先數(shù)最高的進(jìn)程??梢韵葘⑺?有就緒進(jìn)程按照優(yōu)先級(jí)由大到小的順序排列,依次存入隊(duì)列,然后每次優(yōu)先運(yùn) 行隊(duì)首進(jìn)程,直到隊(duì)列為空。4 .短作業(yè)優(yōu)先調(diào)度算法:先將所有就緒隊(duì)列按照剩余時(shí)間由小到大的順序排列,并依次存入隊(duì)列,再按照先來先服務(wù)方法執(zhí)行下去。5 .多級(jí)反饋隊(duì)列調(diào)度算法:允許進(jìn)程在隊(duì)列之間移動(dòng)。在系統(tǒng)中設(shè)置多個(gè)就緒隊(duì)列,每個(gè)隊(duì)列對(duì)應(yīng)一個(gè)優(yōu) 先級(jí),第一個(gè)隊(duì)列的優(yōu)先級(jí)最高,第二隊(duì)列次之。以下各隊(duì)列的優(yōu)先級(jí)逐步降低。 各就緒隊(duì)列中的進(jìn)程的運(yùn)行時(shí)間片不同,高優(yōu)先級(jí)隊(duì)列的時(shí)間片小,低優(yōu)先級(jí)隊(duì)列的時(shí)間片大。進(jìn)程并非總是固定在某一隊(duì)列中,新進(jìn)程進(jìn)入系統(tǒng)后,被存放在第一 個(gè)隊(duì)列的末尾。如果某個(gè)進(jìn)

33、程在規(guī)定的時(shí)間片內(nèi)沒有完成工作,則把它轉(zhuǎn)入到下一 個(gè)隊(duì)列的末尾,直至進(jìn)入最后一個(gè)隊(duì)列。系統(tǒng)先運(yùn)行第一個(gè)隊(duì)列中的進(jìn)程。 當(dāng)?shù)谝?隊(duì)列為空時(shí),才運(yùn)行第二個(gè)隊(duì)列中的進(jìn)程。依此類推,僅當(dāng)前面所有的隊(duì)列都為空 時(shí),才運(yùn)行最后一個(gè)隊(duì)列中的進(jìn)程。當(dāng)處理器正在第i個(gè)隊(duì)列中為某個(gè)進(jìn)程服務(wù)時(shí), 又有新進(jìn)程進(jìn)入優(yōu)先級(jí)最高的隊(duì)列(第1- (i-l)中的任何一個(gè)對(duì)列),則此新進(jìn)程要搶占正在運(yùn)行進(jìn)程的處理器,即由調(diào)度程序把正在運(yùn)行的進(jìn)程放回第i隊(duì)列的末尾,把處理器分配給新到的高優(yōu)先級(jí)進(jìn)程。 除最低優(yōu)先權(quán)隊(duì)列外的所有其他隊(duì)列, 均采 用相同的進(jìn)程調(diào)度算法,即按時(shí)間片輪轉(zhuǎn)的 FIFO (先進(jìn)先出)算法。最后一個(gè)隊(duì) 列中的進(jìn)程

34、按按時(shí)間輪轉(zhuǎn)或 FCFS策略進(jìn)行調(diào)度。它是綜合了 FIFO、RR和剝奪式 HPF的一種進(jìn)程調(diào)度算法。第三章詳細(xì)設(shè)計(jì)3.1設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)定義指針型結(jié)構(gòu)體tProcess代替進(jìn)程控制塊PCB)typedef struct QNodestri ng ProcessName;/進(jìn)程名int Priority;/進(jìn)程優(yōu)先級(jí)int AllTime;/進(jìn)程運(yùn)行需要時(shí)間int LeftTime;/完成進(jìn)程還需的時(shí)間)Node,*Process;String型的進(jìn)程名,int型的優(yōu)先級(jí)、總時(shí)間和剩余時(shí)間。3.2模擬進(jìn)程調(diào)度基本功能:(1)創(chuàng)建進(jìn)程:輸入進(jìn)程的有效信息;(2)進(jìn)程調(diào)度:能夠自由選擇進(jìn)程調(diào)度方式;(3

35、)輸出狀態(tài):能夠輸出每一步所有進(jìn)程的狀態(tài)9;3.3算法流程圖3.3.1先來先服務(wù)調(diào)度根據(jù)設(shè)計(jì)的算法畫先來先服務(wù)進(jìn)程調(diào)度流程圖如圖3.1所示:圖3.1先來先服務(wù)流程圖332優(yōu)先級(jí)調(diào)度根據(jù)設(shè)計(jì)的算法優(yōu)先級(jí)調(diào)度進(jìn)程調(diào)度流程圖如圖3.2所示:圖3.2優(yōu)先級(jí)調(diào)度流程圖333時(shí)間片輪轉(zhuǎn)調(diào)度根據(jù)設(shè)計(jì)的算法畫時(shí)間片輪轉(zhuǎn)流程圖如圖3.3所示:圖3.3時(shí)間片輪轉(zhuǎn)進(jìn)程調(diào)度流程圖334多級(jí)反饋隊(duì)列調(diào)度根據(jù)設(shè)計(jì)的算法畫多級(jí)反饋隊(duì)列流程圖如圖3.3所示:3.4主要函數(shù)定義void Sort(Process process, i nt size);按優(yōu)先級(jí)從大到小排列void sort1(Process process,

36、i nt size);/按 運(yùn)行時(shí)間從小到大排列void FCFS(Process process, i nt num, i nt Timepice);/先 來先服務(wù)算法void TimeTurn(Process process, int num, int Timepice);/時(shí)間片輪轉(zhuǎn)算法void PriorityProcess(Process process, int nu m, i nt Timepice);優(yōu)先級(jí)算法void QueueProcess(Process process, int num, int Timepice, Process a1,Process a2,Proce

37、ss a3);多級(jí)反饋隊(duì)列調(diào)度第四章設(shè)計(jì)結(jié)果及分析4.1創(chuàng)建進(jìn)程用戶創(chuàng)建進(jìn)程的界面如圖4.1所示:3 12 4 6s 00 5 50呂 5 2 2 2 3 1 w人取人蚤 尿s =雖s =s-s- -+wuTb耳4H -2L -4匸J n Q D D D n V|*- Y-lJ.-#! “l(fā)Jf*彳子 fn、Tri:7r二 lTTT s 9 s nQ B s -丁丁一丁- 丁丁- T 一二=三二三二一云一-yj T .1 $S名名名茗 :口壬口王口王Q王口王?王 呂昇-號(hào)井一井忑E r-AlTAlTlTlTA_TX TlTTr -I 13456 ” H p 科 l1-.Ar IJIr:;!-e

38、:.1t 11 Hl?H5?HFXF臨5? 飢則斯則刖-世別 r-dJh JI t* 匚 Jilt ; L J ,k iT圖4.1創(chuàng)建進(jìn)程4.2選擇進(jìn)程調(diào)度用戶選擇進(jìn)程調(diào)度算法界面如圖 4.2所示:S3Hid澤騷哥詢間片輪換鼾狀孵度訃短作業(yè)啟心驅(qū)齦列舷 噁翟訐間片大小汚圖4.2選擇進(jìn)程調(diào)度算法4.3先來先服務(wù)調(diào)度先來先服務(wù)調(diào)度算法運(yùn)行情況如圖4.3,圖4.4,圖4.5所示:還兼襲占用時(shí)間優(yōu)先級(jí)&3201比第程計(jì)算已經(jīng)搠亍完畢!圖4.3所有進(jìn)程都在隊(duì)列中先來先眾務(wù)闊.度:運(yùn)行氏藉時(shí)間S&20252S301&圖4.4其中一個(gè)執(zhí)行完畢先來先麗務(wù)調(diào)度:所有謹(jǐn)程都己經(jīng)執(zhí)行売畢!Press 質(zhì)ny key

39、 to cont inue圖4.5所有的進(jìn)程都執(zhí)行完畢4.4時(shí)間片輪轉(zhuǎn)調(diào)度時(shí)間片輪轉(zhuǎn)調(diào)度算法運(yùn)行情況如圖 4.6,圖4.7所示:還需要占甲時(shí)間優(yōu)先級(jí)0s353511021B4156I就第運(yùn)彳亍亙需時(shí)間1550202&2530進(jìn)程輸出已經(jīng)執(zhí)彳芫畢/ZZ/Z/Z/Z/ZZZZZ/ZZ/ZZ/ZZ/ZZ/J/Z/ZZZ/Z/ZX/r/圖4.6其中一個(gè)進(jìn)程執(zhí)行完畢時(shí)間片輪轉(zhuǎn)調(diào)度中時(shí)間片為汚. I所有進(jìn)程都已經(jīng)執(zhí)苻芫畢?圖4.7所有進(jìn)程都執(zhí)行完畢4.5優(yōu)先級(jí)調(diào)度優(yōu)先級(jí)調(diào)度算法運(yùn)行情況如圖4.8,圖4.9,圖4.10所示:圖4.8所有的進(jìn)程都在隊(duì)列中囂i4還需要占用時(shí)閭 優(yōu)先級(jí)0 6運(yùn)30級(jí)/名 無程轉(zhuǎn)出

40、茸A.M入程”3X梟箱 扌/ 仝/Z 1/ 4XZ 車Z 比“圖4.9其中一個(gè)進(jìn)程執(zhí)行完畢所有進(jìn)程都己經(jīng)期廳芫畢t圖4.10所有的進(jìn)程都執(zhí)行完畢4.6多級(jí)反饋隊(duì)列調(diào)度多級(jí)反饋隊(duì)列調(diào)度算法運(yùn)行情況如圖4.11至4.13所示:465優(yōu)先級(jí)3圖4.11當(dāng)刖執(zhí)行第一隊(duì)列45煜仃字間 時(shí) “ k優(yōu)先細(xì)3程雲(yún)進(jìn)#的仟:中=450錮陸253015一元程運(yùn)岡 寫 行進(jìn) 調(diào)隊(duì) 執(zhí)備 列 未紅 梟/還“中列字 名 計(jì) 箭程畀典刖人轉(zhuǎn)出程-1 丄一一/井.tMflt比乍liZ甲遴十 .- - - / 3 - 1-isr- IT-r ll-l ti- i/; r % I曙纜辭的進(jìn)程,時(shí)間片夫小為世程名字善三曲列中的送

41、程+時(shí)間片大b為;加運(yùn)廳址需時(shí)間502R25253還需要占用時(shí)間優(yōu)先級(jí)1,35116圖4.12第二隊(duì)列執(zhí)行完,當(dāng)前執(zhí)行第三隊(duì)列勞髒耀貴辭的進(jìn)程.時(shí)間片大小為血 早三V忡所有迸程都己經(jīng)廿,訐兀畢? 島有進(jìn)程都已經(jīng)執(zhí)行完畢?圖4.13所有進(jìn)程都已經(jīng)執(zhí)行完畢4.7性能分析進(jìn)程調(diào)度雖然是在系統(tǒng)內(nèi)部的低級(jí)調(diào)度,但進(jìn)程調(diào)度的優(yōu)劣直接影響作業(yè)調(diào)度的性 能。反映作業(yè)調(diào)度優(yōu)劣的周轉(zhuǎn)時(shí)間和平均周轉(zhuǎn)時(shí)間只在某種程度上反映了進(jìn)程調(diào)度的性能,例如,其執(zhí)行時(shí)間部分中實(shí)際上包含有進(jìn)程等待 (包括就緒狀態(tài)時(shí)的等待)時(shí)間,而 進(jìn)程等待時(shí)間的多少是要依靠進(jìn)程調(diào)度策略和等待事件何時(shí)發(fā)生等來決定的。因此,進(jìn) 程調(diào)度性能的商量是操作系

42、統(tǒng)設(shè)計(jì)的一個(gè)重要指標(biāo)。我們說進(jìn)程調(diào)度性能的衡量方法可 分為定形和定量?jī)煞N。在定形衡量方面,首先是調(diào)度的可靠住。包括一次進(jìn)程調(diào)度是否 可能引起數(shù)據(jù)結(jié)構(gòu)的破壞等。這要求我們對(duì)調(diào)度時(shí)機(jī)的選擇和保存CPU現(xiàn)場(chǎng)十分謹(jǐn)慎。另外,簡(jiǎn)潔性也是衡量進(jìn)程調(diào)度的一個(gè)重要指標(biāo),由于調(diào)度程序的執(zhí)行涉及到多個(gè)進(jìn)程 和必須進(jìn)行上下文切換,如果調(diào)度程序過于繁瑣和復(fù)雜,將會(huì)耗去較大的系統(tǒng)開銷。這 在用戶進(jìn)程調(diào)用系統(tǒng)調(diào)用較多的情況下,將會(huì)造成響應(yīng)時(shí)間大幅度增加。進(jìn)程調(diào)度的定 量評(píng)價(jià)包括CPU勺利用率評(píng)價(jià)、進(jìn)程在就緒隊(duì)列中的等待時(shí)間與執(zhí)行時(shí)間之比等。實(shí)際 上由于進(jìn)程進(jìn)入就緒隊(duì)列的隨機(jī)模型很難確定,而且進(jìn)程上下文切換等也將影響進(jìn)程的

43、執(zhí)行效率,LL而對(duì)進(jìn)程調(diào)度進(jìn)行解析是很困難的。 一般情況下,大多利用模擬或測(cè)試系 統(tǒng)響應(yīng)時(shí)間的方法來評(píng)價(jià)進(jìn)程調(diào)度的性能10。分析測(cè)試結(jié)果知:FCFS算法比較有利于長(zhǎng)作業(yè)(進(jìn)程),而不利于短作業(yè)(進(jìn)程); 短作業(yè)優(yōu)先調(diào)度算法對(duì)長(zhǎng)作業(yè)不利,可能導(dǎo)致長(zhǎng)作業(yè)長(zhǎng)時(shí)間不被調(diào)度;優(yōu)先及調(diào)度算法 則保證了緊迫進(jìn)程,而那些優(yōu)先級(jí)較低的則可能長(zhǎng)時(shí)間得不到調(diào)度;時(shí)間片輪轉(zhuǎn)算法則 算是對(duì)每個(gè)進(jìn)程都是公平的,減少了進(jìn)程的等待時(shí)間;綜合考慮,多級(jí)反饋隊(duì)列調(diào)度算 法則是綜合FCFS短作業(yè)優(yōu)先,時(shí)間片輪轉(zhuǎn)和優(yōu)先級(jí)調(diào)度算法的優(yōu)點(diǎn),故多級(jí)反饋隊(duì)列 調(diào)度對(duì)大多數(shù)進(jìn)程調(diào)度來說是一種最佳的調(diào)度算法,但具體算法則應(yīng)根據(jù)實(shí)際需求選 擇。總

44、結(jié)經(jīng)過本次課程設(shè)計(jì)讓我感受很深的是對(duì) C+語(yǔ)言的運(yùn)用,由于對(duì)C+語(yǔ)言在平時(shí) 運(yùn)用的不夠,在對(duì)C+語(yǔ)言的使用尤其是在編寫方面很欠缺,在組織語(yǔ)言時(shí)出錯(cuò)不斷。 在設(shè)計(jì)過程中,需要大量的相關(guān)資料,為了本次課程設(shè)計(jì)我在網(wǎng)上和圖書館查閱了大量 資料,不斷的發(fā)現(xiàn)問題、提出問題、解決問題,在變成和調(diào)試的過程中,進(jìn)程會(huì)出現(xiàn)意 想不到的問題,并非每個(gè)問題都可以從相關(guān)資料中找到解決方法,有些問題是無法預(yù)料 的,這就需要通過自己理性的分析得出問題的解決方案。我對(duì)操作系統(tǒng)中的進(jìn)程和進(jìn)程調(diào)度有了更進(jìn)一步的認(rèn)識(shí)和了解,能夠熟練掌握常用的進(jìn)程調(diào)度算法。能夠正確運(yùn)用操作系統(tǒng)中所學(xué)的基本理論和知識(shí),加深了對(duì)進(jìn)程調(diào)度 基本概念的理

45、解,認(rèn)識(shí)到多級(jí)反饋隊(duì)列調(diào)度一般來說是最佳的算法,但也有例外,我們 應(yīng)該根據(jù)實(shí)際需求確定最佳的進(jìn)程調(diào)度算法。本次課程設(shè)計(jì)大量運(yùn)用到了數(shù)據(jù)結(jié)構(gòu)中的知識(shí), 數(shù)據(jù)結(jié)構(gòu)中的一些算法我也能靈活 運(yùn)用在操作系統(tǒng)的設(shè)計(jì)?;仡櫛敬握n程設(shè)計(jì),我運(yùn)用了多個(gè)學(xué)科的知識(shí),這給了我一些 啟發(fā),在今后的學(xué)習(xí)中我們要多多將各科的知識(shí)融會(huì)貫通,綜合運(yùn)用。雖然本次課程設(shè)計(jì)我已經(jīng)完成了,但我還覺得不足,這也是我知識(shí)所限,我要更加 努力。致謝本次課程設(shè)計(jì)我能夠順利完成要感謝好多人:操作系統(tǒng)的胡宏銀老師在課堂上詳細(xì) 給我們介紹了進(jìn)程調(diào)度的算法,這是完成本次實(shí)驗(yàn)的基礎(chǔ)。也要感謝數(shù)據(jù)結(jié)構(gòu)的姚峰老 師,他教授了我大量關(guān)于數(shù)據(jù)結(jié)構(gòu)的知識(shí),對(duì)本

46、次課程設(shè)計(jì)也很重要。感謝老師在這兩 周的時(shí)間里一直不厭其煩的回答我們同學(xué)們的疑惑,為我們講解疑難之處,找出我們的 錯(cuò)誤并教我們改正,最后我還要感謝我的同學(xué)朋友們,他們?cè)谖矣龅絾栴}時(shí)耐心的幫我 解決,為我講解,提出我沒有想到的問題,沒有這些人,我恐怕不可能完成這一課程設(shè) 計(jì),在此表示感謝。參考文獻(xiàn)1 湯小丹,梁紅兵,等計(jì)算機(jī)操作系統(tǒng)(第三版)M.西安:西安電子科技大學(xué)出版社,2007年2 嚴(yán)蔚敏,吳偉明數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)M 北京:清華大學(xué)出版社,2007年3 陳銳,零基礎(chǔ)學(xué)數(shù)據(jù)結(jié)構(gòu)M.北京:機(jī)械工業(yè)出版社,2010年4 張堯?qū)W,計(jì)算機(jī)操作系統(tǒng)教程(第2版)習(xí)題與實(shí)驗(yàn)指導(dǎo)M.北京: 清華大學(xué)出版

47、社,2009年 嚴(yán)蔚敏;吳偉民數(shù)據(jù)結(jié)構(gòu)教程學(xué)習(xí)指導(dǎo)M.北京:清華大學(xué)出版社.2005年4月.6 葉核亞.數(shù)據(jù)結(jié)構(gòu)(第2版)M.北京:電子工業(yè)出版社.2008年7月.7 湯子瀛.計(jì)算機(jī)操作系統(tǒng)(修訂版)M.西安:西安電子科技大學(xué)出版社.2001年 8月.8 譚耀鉻.操作系統(tǒng)(2007版)M.北京:中國(guó)人民大學(xué)出版社.2007年7月.9 張永常.Java程序設(shè)計(jì)實(shí)用教程M.北京:電子工業(yè)出版社.2006年8月.10 譚浩強(qiáng) C程序設(shè)計(jì)(第二版)M.北京:清華大學(xué)出版社.1999年12月.附錄主要程序代碼:#i nclude #in elude #defi ne SIZE 100#defi ne O

48、VERFLOW NULLusing n amespace std;typedef struct QNodestri ng ProcessName;/進(jìn)程名int Priority;/進(jìn)程優(yōu)先級(jí)int AllTime;/進(jìn)程運(yùn)行需要時(shí)間int LeftTime;/完成進(jìn)程還需的時(shí)間 Node, *Process;函數(shù)聲明void Sort(Process processnt size);按優(yōu)先級(jí)從大到小排列void sort1(Process process,i nt size);按運(yùn)行時(shí)間時(shí)間從小到大排列void FCFS(Process process, i nt num, i nt Tim

49、epice);/先 來先服務(wù)算法void TimeTurn(Process process, int nu m, i nt Timepice);/時(shí)間片輪轉(zhuǎn)算法void PriorityProcess(Process process, int nu m, i nt Timepice); / 優(yōu)先級(jí)算法void QueueProcess(Process process, int num, int Timepice, Process a1, Process a2,Process a3);多級(jí)反饋隊(duì)列/主函數(shù)void main()int a;Process *process=new Process

50、SIZE;Process *a1= new Process SIZE;/用數(shù)組模擬隊(duì)列的功能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 (i nt i1=0;inum;for (int j=0;j nu m;j+)stri ng n ame;int CpuTime;int Leval;coutvv輸入第j+1n ame;cin CpuTimeLeval; processj-ProcessName=n ame; processj-AIITime=CpuTime; processj-Priority=LevaI;for (i nt k=0;k LeftTime=processk-AIITime; 對(duì)進(jìn)程剩余時(shí)間初始化 coutvve ndl;cout1:先來先服務(wù)2:時(shí)間片輪換3:優(yōu)先級(jí)調(diào)度4:最短作業(yè)優(yōu)先5:多級(jí)反 饋隊(duì)列調(diào)度

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論