計算機(jī)操作系統(tǒng)進(jìn)程調(diào)度算法的實現(xiàn)

計算機(jī)操作系統(tǒng)進(jìn)程調(diào)度算法的實現(xiàn)

ID:30925202

大?。?21.94 KB

頁數(shù):11頁

時間:2019-01-04

計算機(jī)操作系統(tǒng)進(jìn)程調(diào)度算法的實現(xiàn)_第1頁
計算機(jī)操作系統(tǒng)進(jìn)程調(diào)度算法的實現(xiàn)_第2頁
計算機(jī)操作系統(tǒng)進(jìn)程調(diào)度算法的實現(xiàn)_第3頁
計算機(jī)操作系統(tǒng)進(jìn)程調(diào)度算法的實現(xiàn)_第4頁
計算機(jī)操作系統(tǒng)進(jìn)程調(diào)度算法的實現(xiàn)_第5頁
資源描述:

《計算機(jī)操作系統(tǒng)進(jìn)程調(diào)度算法的實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、題目2進(jìn)程調(diào)度算法的實現(xiàn)2.1題目的主要研究內(nèi)容及預(yù)期達(dá)到的目標(biāo)(1)設(shè)計進(jìn)程控制塊;(2)設(shè)計多個進(jìn)程隊列;(3)設(shè)計多個進(jìn)程(M20);(4)動態(tài)生成時間片、執(zhí)行時間和優(yōu)先級,將這些信息輸出至文件屮;(5)設(shè)計基于時間片的多優(yōu)先級調(diào)度算法;(6)動態(tài)調(diào)度,并把所冇調(diào)度信息輸出至文件中。(7)理解進(jìn)程調(diào)度相關(guān)理論;(8)掌握時間片調(diào)度原理;(9)掌握高優(yōu)先級調(diào)度原理。2.2題目研究的工作基礎(chǔ)或?qū)嶒灄l件(1)碩件環(huán)境:裝有Linux操作系統(tǒng)(虛擬機(jī))的計算機(jī)一臺。(2)軟件環(huán)境:vim編輯器、VisualC卄。2.3設(shè)計思想(

2、1)優(yōu)先級優(yōu)先級體現(xiàn)了進(jìn)程的重要程度或緊迫程度,在大多數(shù)現(xiàn)代操作系統(tǒng)屮,都采用了優(yōu)先級調(diào)度策略。優(yōu)先級從小到大(如0-127),0優(yōu)先級最高,127最低。在本實驗中,要求優(yōu)先級為0-8。(2)基于吋間片調(diào)度將所有的就緒進(jìn)程按照先來先服務(wù)的原則,排成一個隊列,每次調(diào)度時,將CPU分配給隊首進(jìn)程,并令其執(zhí)行一個時間片。當(dāng)時間片用完時,由一個計時器發(fā)出時鐘中斷請求,調(diào)度程序把此進(jìn)程終止,把該進(jìn)程放到隊尾。(3)高優(yōu)先級調(diào)度優(yōu)先級高的進(jìn)程優(yōu)先得到cpu,等該進(jìn)程執(zhí)行完畢后,另外的進(jìn)程才能執(zhí)行。(4)基于時間片的高優(yōu)先級調(diào)度時間片和優(yōu)先

3、級調(diào)度的結(jié)合,在系統(tǒng)中,每個優(yōu)先級對應(yīng)一個就緒隊列,在每個就緒隊列內(nèi),采用時間片調(diào)度。當(dāng)高優(yōu)先級進(jìn)程隊列調(diào)度完成后,才能轉(zhuǎn)入更低優(yōu)先級的就緒隊列調(diào)度。(5)算法設(shè)計將所有的就緒進(jìn)程按照先來先服務(wù)的原則,排成一?個隊列,每次調(diào)度吋,將CPU分配給隊首進(jìn)程,并令其執(zhí)行一個時間片。當(dāng)時間片用完時,由一個計時器發(fā)出時鐘屮斷請求,調(diào)度程序把此進(jìn)程終止,把該進(jìn)程放到隊尾。優(yōu)先級高的進(jìn)程優(yōu)先得到cpu,等該進(jìn)程執(zhí)行完畢后,另外的進(jìn)程才能執(zhí)行。時間片和優(yōu)先級調(diào)度的結(jié)合,在系統(tǒng)中,每個優(yōu)先級對應(yīng)一個就緒隊列,在每個就緒隊列內(nèi),采用吋間片調(diào)度。當(dāng)

4、高優(yōu)先級進(jìn)程隊列調(diào)度完成后,才能轉(zhuǎn)入更低優(yōu)先級的就緒隊列調(diào)度。2.4流程圖2.5主要程序代碼#include#include//#includcusingnamespacestd;//#defineNULL0typcdcfstructPCB//定義進(jìn)程結(jié)構(gòu)體{charname;//進(jìn)程名structPCB*next;doublearrive_time;//到達(dá)時間doublenccd_timc;//需求運行時間doubleworked_time;//已工作時間intP

5、number;//優(yōu)先數(shù)charcondition;//隊列標(biāo)識}PCB,*linkList;voidcreatPCB(linkList*a,intn){cout?,r請輸入進(jìn)程名/到達(dá)時間/要求運行時間/優(yōu)先數(shù)n?endl;for(inti=0;ivn;i++){cin?a[i]->name?a[i]->arrive_time?a[i]->need_time?a[i]->Pnumber;//^A,-^^iW體匹配a[i]->condition='d';〃表示還未加入就緒隊列的標(biāo)志a[i]->worked_time=Oy/wo

6、rked_time的初始值為0intjudge(linkList*a,intn)〃判斷所有進(jìn)程是否都結(jié)束{intflag_l=l;for(inti=0;icondition!='f){1=0;break;returnflag_l;}voidcreat_Process(linkList*a,intn)〃計算并輸出調(diào)度結(jié)果{doubletime=0;//已運行的總時間linkListl,p,r;//定義對象l=(linkList)malloc(sizeof(PCB));//強(qiáng)制轉(zhuǎn)換l->next=

7、NULL;//1的卜一?個節(jié)點為nullintflag_l=();//標(biāo)識while(flag_l!=1){for(inti=0;i=a[i]->arrivc_time&&(a[i]->condition=='d'lla[i]->condition=='x'))//判斷進(jìn)程是否到達(dá),是否是剛執(zhí)行過或未加入的,兩者都是執(zhí)行{〃目的是排出等待序列p=(linkList)malloc(sizeof(PCB));P=a[i];p->next=NULL;if(l->ncxt==NULL

8、){ext=p;p->condition='w,;}else{r=l;while(r->next){if((r->next->Pnumber)>p->Pnumber)〃判斷優(yōu)先級{〃交換p->next=r->next;ext=p;flag二I;a[il->condition=

當(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ò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。