時間片輪轉(zhuǎn)算法和優(yōu)先級調(diào)度算法C語言模擬實現(xiàn)收藏

時間片輪轉(zhuǎn)算法和優(yōu)先級調(diào)度算法C語言模擬實現(xiàn)收藏

ID:26523254

大小:59.00 KB

頁數(shù):12頁

時間:2018-11-27

時間片輪轉(zhuǎn)算法和優(yōu)先級調(diào)度算法C語言模擬實現(xiàn)收藏_第1頁
時間片輪轉(zhuǎn)算法和優(yōu)先級調(diào)度算法C語言模擬實現(xiàn)收藏_第2頁
時間片輪轉(zhuǎn)算法和優(yōu)先級調(diào)度算法C語言模擬實現(xiàn)收藏_第3頁
時間片輪轉(zhuǎn)算法和優(yōu)先級調(diào)度算法C語言模擬實現(xiàn)收藏_第4頁
時間片輪轉(zhuǎn)算法和優(yōu)先級調(diào)度算法C語言模擬實現(xiàn)收藏_第5頁
資源描述:

《時間片輪轉(zhuǎn)算法和優(yōu)先級調(diào)度算法C語言模擬實現(xiàn)收藏》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫

1、.時間片輪轉(zhuǎn)算法和優(yōu)先級調(diào)度算法C語言模擬實現(xiàn)收藏一、目的和要求進程調(diào)度是處理機管理的核心內(nèi)容。本實驗要求用高級語言編寫模擬進程調(diào)度程序,以便加深理解有關進程控制快、進程隊列等概念,并體會和了解優(yōu)先數(shù)算法和時間片輪轉(zhuǎn)算法的具體實施辦法。二、實驗內(nèi)容1.設計進程控制塊PCB的結構,通常應包括如下信息:進程名、進程優(yōu)先數(shù)(或輪轉(zhuǎn)時間片數(shù))、進程已占用的CPU時間、進程到完成還需要的時間、進程的狀態(tài)、當前隊列指針等。??2.編寫兩種調(diào)度算法程序:優(yōu)先數(shù)調(diào)度算法程序循環(huán)輪轉(zhuǎn)調(diào)度算法程序3.按要求輸出結果。三、提示和說明

2、分別用兩種調(diào)度算法對伍個進程進行調(diào)度。每個進程可有三種狀態(tài);執(zhí)行狀態(tài)(RUN)、就緒狀態(tài)(READY,包括等待狀態(tài))和完成狀態(tài)(FINISH),并假定初始狀態(tài)為就緒狀態(tài)。(一)進程控制塊結構如下:??????NAME——進程標示符??????PRIO/ROUND——進程優(yōu)先數(shù)/進程每次輪轉(zhuǎn)的時間片數(shù)(設為常數(shù)2)??????CPUTIME——進程累計占用CPU的時間片數(shù)??????NEEDTIME——進程到完成還需要的時間片數(shù)??????STATE——進程狀態(tài)??????NEXT——鏈指針注:????1.為了便

3、于處理,程序中進程的的運行時間以時間片為單位進行計算;????2.各進程的優(yōu)先數(shù)或輪轉(zhuǎn)時間片數(shù),以及進程運行時間片數(shù)的初值,均由用戶在程序運行時給定。(二)進程的就緒態(tài)和等待態(tài)均為鏈表結構,共有四個指針如下:......??????RUN——當前運行進程指針??????READY——就需隊列頭指針??????TAIL——就需隊列尾指針??????FINISH——完成隊列頭指針(三)程序說明????1.在優(yōu)先數(shù)算法中,進程優(yōu)先數(shù)的初值設為:??????50-NEEDTIME每執(zhí)行一次,優(yōu)先數(shù)減1,CPU時間片數(shù)加

4、1,進程還需要的時間片數(shù)減1。在輪轉(zhuǎn)法中,采用固定時間片單位(兩個時間片為一個單位),進程每輪轉(zhuǎn)一次,CPU時間片數(shù)加2,進程還需要的時間片數(shù)減2,并退出CPU,排到就緒隊列尾,等待下一次調(diào)度。????2.程序的模塊結構提示如下:整個程序可由主程序和如下7個過程組成:(1)INSERT1——在優(yōu)先數(shù)算法中,將尚未完成的PCB按優(yōu)先數(shù)順序插入到就緒隊列中;(2)INSERT2——在輪轉(zhuǎn)法中,將執(zhí)行了一個時間片單位(為2),但尚未完成的進程的PCB,插到就緒隊列的隊尾;(3)FIRSTIN——調(diào)度就緒隊列的第一個進

5、程投入運行;(4)PRINT——顯示每執(zhí)行一次后所有進程的狀態(tài)及有關信息。(5)CREATE——創(chuàng)建新進程,并將它的PCB插入就緒隊列;(6)PRISCH——按優(yōu)先數(shù)算法調(diào)度進程;(7)ROUNDSCH——按時間片輪轉(zhuǎn)法調(diào)度進程。主程序定義PCB結構和其他有關變量。(四)運行和顯示程序開始運行后,首先提示:請用戶選擇算法,輸入進程名和相應的NEEDTIME值。每次顯示結果均為如下5個字段:??????name??cputime??needtime??priority??state注:......????1.在s

6、tate字段中,"R"代表執(zhí)行態(tài),"W"代表就緒(等待)態(tài),"F"代表完成態(tài)。2.應先顯示"R"態(tài)的,再顯示"W"態(tài)的,再顯示"F"態(tài)的。??3.在"W"態(tài)中,以優(yōu)先數(shù)高低或輪轉(zhuǎn)順序排隊;在"F"態(tài)中,以完成先后順序排隊。viewplaincopytoclipboardprint?1./*??2.操作系統(tǒng)實驗之時間片輪轉(zhuǎn)算法和優(yōu)先級調(diào)度算法??3.By?Visual?C++?6.0??4.*/???#include????#include????#include?

7、ng.h>???typedef?struct?node???{?????char?name[20];????/*進程的名字*/?????int?prio;?????/*進程的優(yōu)先級*/?????int?round;?????/*分配CPU的時間片*/?????int?cputime;????/*CPU執(zhí)行時間*/?????int?needtime;????/*進程執(zhí)行所需要的時間*/?????char?state;?????/*進程的狀態(tài),W——就緒態(tài),R——執(zhí)行態(tài),F(xiàn)——完成態(tài)*/?????int?count

8、;?????/*記錄執(zhí)行的次數(shù)*/?????struct?node?*next;???/*鏈表指針*/???}PCB;???PCB?*ready=NULL,*run=NULL,*finish=NULL;?/*定義三個隊列,就緒隊列,執(zhí)行隊列和完成隊列*/???int?num;???void?GetFirst();????/*從就緒隊列取得第一個節(jié)點*/???......void?Out

當前文檔最多預覽五頁,下載文檔查看全文

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

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