操作系統(tǒng)綜合性實(shí)驗(yàn)報(bào)告-進(jìn)程調(diào)度(含代碼)_第1頁
操作系統(tǒng)綜合性實(shí)驗(yàn)報(bào)告-進(jìn)程調(diào)度(含代碼)_第2頁
操作系統(tǒng)綜合性實(shí)驗(yàn)報(bào)告-進(jìn)程調(diào)度(含代碼)_第3頁
操作系統(tǒng)綜合性實(shí)驗(yàn)報(bào)告-進(jìn)程調(diào)度(含代碼)_第4頁
操作系統(tǒng)綜合性實(shí)驗(yàn)報(bào)告-進(jìn)程調(diào)度(含代碼)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)報(bào)告課程名稱操作系統(tǒng)B實(shí)驗(yàn)學(xué)期XXXX至XXXX學(xué)年第X學(xué)期學(xué)生所在系部計(jì)算機(jī)系年級(jí)XXXX專業(yè)班級(jí)XXXXXX學(xué)生姓名XXXX學(xué)號(hào)任課教師XXX實(shí)驗(yàn)成績(jī)計(jì)算機(jī)系制第 頁年月日操作系統(tǒng)B課程綜合性實(shí)驗(yàn)報(bào)告開課實(shí)驗(yàn)室:實(shí)驗(yàn)題目I進(jìn)程調(diào)度算法模擬程序設(shè)計(jì)、實(shí)驗(yàn)?zāi)康耐ㄟ^對(duì)進(jìn)程調(diào)度算法的模擬,進(jìn)一步理解進(jìn)程的基本概念,加深對(duì)進(jìn)程運(yùn)行狀態(tài)和進(jìn)程調(diào)度過程、調(diào)度算法的理解。二、設(shè)備與環(huán)境硬件設(shè)備:PC機(jī)一臺(tái)軟件環(huán)境:安裝Windows操作系統(tǒng)或者Linux操作系統(tǒng),并安裝相關(guān)的程序開發(fā)環(huán)境,如CC+Java等編程語言環(huán)境。三、實(shí)驗(yàn)內(nèi)容用C語言(或其它語言,如Java)編程實(shí)現(xiàn)對(duì)N個(gè)進(jìn)程采用某種進(jìn)程調(diào)度算

2、法(如動(dòng)態(tài)優(yōu)先權(quán)調(diào)度算法、先來先服務(wù)算法、短進(jìn)程優(yōu)先算法、時(shí)間片輪轉(zhuǎn)調(diào)度算法)調(diào)度執(zhí)行的模擬。每個(gè)用來標(biāo)識(shí)進(jìn)程的進(jìn)程控制塊PCB可用結(jié)構(gòu)來描述,包括以下字段:typedefstructnodecharname10;進(jìn)程的名字intround;一次分配CPU的時(shí)間片intcputime;/CPU已執(zhí)行時(shí)間intneedtime;進(jìn)程執(zhí)行所需要的時(shí)間charstate;進(jìn)程的狀態(tài),W-就緒態(tài),R-執(zhí)行態(tài),F(xiàn)-完成態(tài)intcount;記錄進(jìn)程執(zhí)行的次數(shù)structnode*next;隊(duì)列指針PCB;主要算法:取得第一個(gè)就緒隊(duì)列節(jié)點(diǎn)voidGetFirst()run=ready;if(ready!=N

3、ULL)run-state=R;ready=ready-next;run-next=NULL;將進(jìn)程插入就緒片隊(duì)列voidInsertTime(PCB*in)將進(jìn)程插入到就緒隊(duì)列尾部PCB*fst;fst=ready;if(ready=NULL)in-next=ready;ready=in;elsewhile(fst-next!=NULL)fst=fst-next;in-next=fst-next;fst-next=in;時(shí)間片輪轉(zhuǎn)調(diào)度voidRoundRun()intflag=1;GetFirst();while(run!=NULL)Output。;while(flag)run-count+

4、;run-cputime+;run-needtime-;if(run-needtime=0)/進(jìn)程執(zhí)行完畢run-state=F;InsertFinish(run);flag=0;elseif(run-count=run-round)時(shí)間片用完run-state=W;run-count=0;計(jì)數(shù)器清零,為下次做準(zhǔn)備InsertTime(run);flag=0;Run!=nullNYNFlag=lYYNNrun-count=run-roundY第4頁run-needtime=0/輸入進(jìn)程數(shù)目/輸出各隊(duì)列進(jìn)程信息4.流程圖:界面顯示flag=1;GetFirst();run-count+;run-

5、cputime+;run-needtime-;進(jìn)程信息輸入并初始化將進(jìn)程插入就緒隊(duì)列取就緒隊(duì)列首節(jié)點(diǎn)將進(jìn)程插入完成隊(duì)列將進(jìn)程插入就緒隊(duì)列設(shè)標(biāo)志flag=1結(jié)束開始第 頁ItF程輪藪時(shí)間需變吁I司進(jìn)程橫態(tài)計(jì)數(shù)語u2進(jìn)程口|進(jìn)程進(jìn)程輪數(shù)n22議數(shù)N22議數(shù)N222cpu理432_時(shí)間-4434時(shí)問4364,一cpu時(shí)冋-42需夏時(shí)間1082需要時(shí)間&0Q1需要時(shí)間F進(jìn)程伏態(tài)伸F進(jìn)程伏態(tài)it進(jìn)程伏態(tài)F2Z12粹數(shù)器Z1212.實(shí)驗(yàn)體會(huì)、本實(shí)驗(yàn)的難點(diǎn)是每執(zhí)行一個(gè)時(shí)間片就讓它排到隊(duì)尾,也即重新排序,并從頭開始調(diào)度執(zhí)行!、時(shí)間片的工作流程是:時(shí)間片輪轉(zhuǎn)的原則是系統(tǒng)將所有的就緒進(jìn)程按照先來先服務(wù)的原則排成一

6、個(gè)隊(duì)列,每次調(diào)度時(shí),把CPU分配隊(duì)首進(jìn)程,并令其執(zhí)行一個(gè)時(shí)間片,當(dāng)執(zhí)行完時(shí),有一個(gè)計(jì)時(shí)器發(fā)出時(shí)鐘中斷請(qǐng)求,該進(jìn)程停止,并被送到就緒隊(duì)列的末尾,然后再把處理機(jī)分配就緒隊(duì)列的隊(duì)列進(jìn)程,同時(shí)也讓它執(zhí)行個(gè)時(shí)間片。、通過親手實(shí)驗(yàn),對(duì)上述寫的時(shí)間片的工作流程和原理有了更貼切的認(rèn)識(shí)。另外本次實(shí)驗(yàn)遇到了很大的麻煩,其實(shí)大部分代碼是借鑒網(wǎng)上的,但自己通過修改,來獲取自己想要的,在自己的努力和同學(xué)的幫助下終于調(diào)試正確,很是高興。評(píng)定項(xiàng)目ABCD評(píng)定項(xiàng)目ABCD算法正確界面美觀,布局合理程序結(jié)構(gòu)合理操作熟練語法、語義正確解析完整實(shí)驗(yàn)結(jié)果正確文字流暢報(bào)告規(guī)范題解正確其他:教師評(píng)價(jià)評(píng)價(jià)教師簽名:年月曰附代碼:#incl

7、ude#include#includetypedefstructnode/進(jìn)程的名字/一次分配CPU的時(shí)間片/CPU已執(zhí)行時(shí)間/進(jìn)程執(zhí)行所需要的時(shí)間進(jìn)程的狀態(tài),W-就緒態(tài),R-執(zhí)行態(tài),F(xiàn)-完成態(tài)/記錄進(jìn)程執(zhí)行的次數(shù)/隊(duì)列指針charname10;intround;intcputime;intneedtime;charstate;intcount;structnode*next;PCB;PCB*ready=NULL,*run=NULL,*finish=NULL;/定義三個(gè)隊(duì)列,就緒隊(duì)列,執(zhí)行隊(duì)列和完成隊(duì)列intnum;voidGetFirst();/從就緒隊(duì)列取得第一個(gè)節(jié)點(diǎn)voidOutput(

8、);/輸出各隊(duì)列信息voidInsertTime(PCB*in);/插入就緒片隊(duì)列voidInsertFinish(PCB*in);/插入完成隊(duì)列voidTimeCreate();/時(shí)間片輸入函數(shù)voidRoundRun();voidmain()printf(n*/時(shí)間片輪轉(zhuǎn)調(diào)度歡迎光臨指導(dǎo)*n);printf(n*時(shí)間片輪轉(zhuǎn)進(jìn)程調(diào)度算法*n);printf(n*計(jì)科B082韓友*n);printf(n*200807014225*n);printf(n*2011年5月15日*n);printf(n請(qǐng)輸入要?jiǎng)?chuàng)建的進(jìn)程數(shù)目:n);scanf(%d,&num);getchar();/吸收回車符號(hào)Ti

9、meCreate();RoundRun();Output();voidGetFirst()/取得第一個(gè)就緒隊(duì)列節(jié)點(diǎn)run=ready;if(ready!=NULL)run-state=R;ready=ready-next;run-next=NULL;voidOutput()/輸出隊(duì)列信息PCB*p;p=ready;printf(“進(jìn)程輪數(shù)cpu時(shí)間需要時(shí)間進(jìn)程狀態(tài)計(jì)數(shù)器n);while(p!=NULL)printf(%st%dt%dt%dt%ct%dn,p-name,p-round,p-cputime,p-needtime,p-state,p-count);p=p-next;p=finish;

10、while(p!=NULL)printf(%st%dt%dt%dt%ct%dn,p-name,p-round,p-cputime,p-needtime,p-state,p-count);p=p-next;p=run;while(p!=NULL)printf(%st%dt%dt%dt%ct%dn,p-name,p-round,p-cputime,p-needtime,p-state,p-count);p=p-next;voidInsertTime(PCB*in)/將進(jìn)程插入到就緒隊(duì)列尾部PCB*fst;fst=ready;if(ready=NULL)in-next=ready;ready=in;elsewhile(fst-next!=NULL)fst=fst-next;in-next=fst-next;fst-next=in;voidInsertFinish(PCB*in)/將進(jìn)程插入到完成隊(duì)列尾部PCB*fst;fst=finish;if(finish=NULL)in-next=finish;fin

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論