優(yōu)先級調(diào)度算法實驗報告

優(yōu)先級調(diào)度算法實驗報告

ID:15910149

大?。?18.50 KB

頁數(shù):9頁

時間:2018-08-06

優(yōu)先級調(diào)度算法實驗報告_第1頁
優(yōu)先級調(diào)度算法實驗報告_第2頁
優(yōu)先級調(diào)度算法實驗報告_第3頁
優(yōu)先級調(diào)度算法實驗報告_第4頁
優(yōu)先級調(diào)度算法實驗報告_第5頁
資源描述:

《優(yōu)先級調(diào)度算法實驗報告》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、優(yōu)先級調(diào)度算法實驗報告院系:****************學(xué)院班級:***********姓名:***學(xué)號:************一、實驗題目:優(yōu)先級調(diào)度算法二、實驗?zāi)康倪M(jìn)程調(diào)度是處理機(jī)管理的核心內(nèi)容。本實驗要求用高級語言編寫模擬進(jìn)程調(diào)度程序,以便加深理解有關(guān)進(jìn)程控制快、進(jìn)程隊列等概念,并體會和了解優(yōu)先級算法的具體實施辦法。三、實驗內(nèi)容1.設(shè)計進(jìn)程控制塊PCB的結(jié)構(gòu),通常應(yīng)包括如下信息:進(jìn)程名、進(jìn)程優(yōu)先數(shù)(或輪轉(zhuǎn)時間片數(shù))、進(jìn)程已占用的CPU時間、進(jìn)程到完成還需要的時間、進(jìn)程的狀態(tài)、當(dāng)前隊列指針等。2.編寫優(yōu)

2、先級調(diào)度算法程序3.按要求輸出結(jié)果。四、實驗要求每個進(jìn)程可有三種狀態(tài);執(zhí)行狀態(tài)(RUN)、就緒狀態(tài)(READY,包括等待狀態(tài))和完成狀態(tài)(FINISH),并假定初始狀態(tài)為就緒狀態(tài)。(一)進(jìn)程控制塊結(jié)構(gòu)如下:NAME——進(jìn)程標(biāo)示符PRIO/ROUND——進(jìn)程優(yōu)先數(shù)NEEDTIME——進(jìn)程到完成還需要的時間片數(shù)STATE——進(jìn)程狀態(tài)NEXT——鏈指針注:1.為了便于處理,程序中進(jìn)程的的運(yùn)行時間以時間片為單位進(jìn)行計算;2.各進(jìn)程的優(yōu)先數(shù)或,以及進(jìn)程運(yùn)行時間片數(shù)的初值,均由用戶在程序運(yùn)行時給定。(二)進(jìn)程的就緒態(tài)和等待態(tài)

3、均為鏈表結(jié)構(gòu),共有四個指針如下:RUN——當(dāng)前運(yùn)行進(jìn)程指針READY——就需隊列頭指針TAIL——就需隊列尾指針FINISH——完成隊列頭指針五、實驗結(jié)果:六、實驗總結(jié):首先這次實驗的難度不小,它必須在熟悉掌握數(shù)據(jù)結(jié)構(gòu)的鏈表和隊列的前提下才能完成,這次實驗中用了三個隊列,就緒隊列,執(zhí)行隊列和完成隊列,就緒隊列中的優(yōu)先級數(shù)是有序插入的,當(dāng)進(jìn)行進(jìn)程調(diào)度的時候,需要先把就緒隊列的隊首節(jié)點(diǎn)(優(yōu)先級數(shù)最大的節(jié)點(diǎn))移入執(zhí)行隊列中,當(dāng)執(zhí)行進(jìn)程結(jié)束后,判斷該進(jìn)程是否已經(jīng)完成,如果已經(jīng)完成則移入完成隊列,如果沒有完成,重新有序插入

4、就緒隊列中,這就是這次實驗算法的思想。附錄(算法代碼):#include#include#includetypedefstructnode{charname[20];/*進(jìn)程的名字*/intprio;/*進(jìn)程的優(yōu)先級*///intcputime;/*CPU執(zhí)行時間*/intneedtime;/*進(jìn)程執(zhí)行所需要的時間*/charstate;/*進(jìn)程的狀態(tài),W--就緒態(tài),R--執(zhí)行態(tài),F(xiàn)--完成態(tài)*/structnode*next;/*鏈表指針*/}PCB;P

5、CB*ready=NULL,*run=NULL,*finish=NULL;/*定義三個隊列,就緒隊列,執(zhí)行隊列和完成隊列*/intnum;voidGetFirst();/*從就緒隊列取得第一個節(jié)點(diǎn)*/voidOutput();/*輸出隊列信息*/voidInsertPrio(PCB*in);/*創(chuàng)建優(yōu)先級隊列,規(guī)定優(yōu)先數(shù)越小,優(yōu)先級越高*/voidInsertTime(PCB*in);/*時間片隊列*/voidInsertFinish(PCB*in);/*時間片隊列*/voidPrioCreate();/*優(yōu)先級

6、輸入函數(shù)*///voidTimeCreate();/*時間片輸入函數(shù)*/voidPriority();/*按照優(yōu)先級調(diào)度*///voidRoundRun();/*時間片輪轉(zhuǎn)調(diào)度*/voidmain(){printf("優(yōu)先數(shù)調(diào)度算法");printf("請輸入要創(chuàng)建的進(jìn)程數(shù)目:");scanf("%d",&num);PrioCreate();Priority();Output();}voidGetFirst()/*取得第一個就緒隊列節(jié)點(diǎn)*/{run=ready;if(ready!=NULL){run->sta

7、te='R';ready=ready->next;run->next=NULL;}}voidOutput()/*輸出隊列信息*/{PCB*p;p=ready;printf("進(jìn)程名t優(yōu)先級t需要時間t進(jìn)程狀態(tài)");while(p!=NULL){printf("%st%dt%dtt%ct",p->name,p->prio,p->needtime,p->state);p=p->next;}p=finish;while(p!=NULL){printf("%st%dt%dtt%ct"

8、,p->name,p->prio,p->needtime,p->state);p=p->next;}p=run;while(p!=NULL){printf("%st%dt%dtt%ct",p->name,p->prio,p->needtime,p->state);p=p->next;}}voidInsertPrio(PCB*in)/*創(chuàng)建優(yōu)先級隊列,規(guī)定優(yōu)先

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

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

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