《操作系統(tǒng)課程設(shè)計(jì)》報(bào)告范本_第1頁
《操作系統(tǒng)課程設(shè)計(jì)》報(bào)告范本_第2頁
《操作系統(tǒng)課程設(shè)計(jì)》報(bào)告范本_第3頁
《操作系統(tǒng)課程設(shè)計(jì)》報(bào)告范本_第4頁
《操作系統(tǒng)課程設(shè)計(jì)》報(bào)告范本_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Evaluation Warning: The document was created with Spire.Doc for .NET.操作系統(tǒng)統(tǒng)課程設(shè)設(shè)計(jì)報(bào)報(bào)告學(xué) 號(hào)號(hào): 姓 名名: 班 級(jí)級(jí): 指導(dǎo)教師: 報(bào)告日期: 一、課設(shè)目目的通過對(duì)操作作系統(tǒng)課程程的學(xué)習(xí),熟熟悉進(jìn)程程的概念念、進(jìn)程程的管理理與存儲(chǔ)儲(chǔ)、進(jìn)程程的調(diào)度度,通過過實(shí)踐深深入理解解進(jìn)程的的調(diào)度算算法。二、課設(shè)任任務(wù)要求編寫一一個(gè)程序序,可以以創(chuàng)建若若干個(gè)虛虛擬進(jìn)程,并并對(duì)若干干個(gè)虛擬擬進(jìn)程進(jìn)進(jìn)行調(diào)度度,調(diào)度度策略為為時(shí)間片片輪轉(zhuǎn)法法,主要要任務(wù)包包括: 進(jìn)程的個(gè)個(gè)數(shù),進(jìn)進(jìn)程的內(nèi)內(nèi)容(即即進(jìn)程的的功能序序列)來來源于一一個(gè)進(jìn)程

2、程序列描描述文件件,另外外調(diào)度運(yùn)運(yùn)行結(jié)果果輸出到到一個(gè)運(yùn)運(yùn)行日志志文件; 設(shè)計(jì)PCCB適用于于時(shí)間片片輪轉(zhuǎn)法法; 建立進(jìn)程程隊(duì)列; 實(shí)現(xiàn)時(shí)間間片輪轉(zhuǎn)轉(zhuǎn)調(diào)度算算法,盡盡量可視視化的展展示調(diào)度度的動(dòng)態(tài)態(tài)過程。 eq oac(,5) 總結(jié)程序序設(shè)計(jì)的的開發(fā)過過程:需需求分析析、系統(tǒng)統(tǒng)設(shè)計(jì)、系系統(tǒng)實(shí)現(xiàn)現(xiàn)及文檔檔的收集集和整理理。三、實(shí)驗(yàn)方方法與設(shè)設(shè)計(jì)分析析每個(gè)進(jìn)程有有一個(gè)進(jìn)進(jìn)程控制制塊( PCCB)表示示。進(jìn)程程控制塊塊可以包包含如下下信息:進(jìn)程程名、優(yōu)優(yōu)先數(shù)、到到達(dá)時(shí)間間、需要運(yùn)運(yùn)行時(shí)間間、已用用CPU時(shí)間、進(jìn)進(jìn)程狀態(tài)態(tài)等等。進(jìn)程的優(yōu)先先數(shù)及需需要的運(yùn)運(yùn)行時(shí)間間可以事事先人為為地指定定(也可可以由隨

3、隨機(jī)數(shù)產(chǎn)產(chǎn)生)。進(jìn)進(jìn)程的到到達(dá)時(shí)間間為輸入入進(jìn)程的的時(shí)間。進(jìn)程的運(yùn)行行時(shí)間以以時(shí)間片片為單位位進(jìn)行計(jì)計(jì)算。每個(gè)進(jìn)程的的狀態(tài)可可以是就就緒 W(Waiit)、運(yùn)運(yùn)行R(Run)、或或完成F(Finnishh)三種種狀態(tài)之之一。就緒進(jìn)程獲獲得 CPPU后都只只能運(yùn)行行一個(gè)時(shí)時(shí)間片。用用已占用用CPU時(shí)間加1來表示示。如果運(yùn)行一一個(gè)時(shí)間間片后,進(jìn)進(jìn)程的已已占用 CPPU時(shí)間已已達(dá)到所所需要的的運(yùn)行時(shí)時(shí)間,則則撤消該該進(jìn)程,如如果運(yùn)行行一個(gè)時(shí)時(shí)間片后后進(jìn)程的的已占用用CPU時(shí)間還還未達(dá)所所需要的的運(yùn)行時(shí)時(shí)間,也也就是進(jìn)進(jìn)程還需需要繼續(xù)續(xù)運(yùn)行,此此時(shí)應(yīng)將將進(jìn)程的的優(yōu)先數(shù)數(shù)減1(即降降低一級(jí)級(jí)),然然后把

4、它它插入就就緒隊(duì)列列等待CPU。每進(jìn)行一次次調(diào)度程程序都打打印一次次運(yùn)行進(jìn)進(jìn)程、就就緒隊(duì)列列、以及及各個(gè)進(jìn)進(jìn)程的 PCCB,以便便進(jìn)行檢檢查。重復(fù)以上過過程,直直到所要要進(jìn)程都都完成為為止四、程序流流程圖開始開始設(shè)置時(shí)間片設(shè)置時(shí)間片選擇選擇增加增加進(jìn)程 是結(jié)束進(jìn)程結(jié)束進(jìn)程PCB順序繼續(xù)增加PCB順序繼續(xù)增加調(diào)度進(jìn)程調(diào)度進(jìn)程結(jié)束打印進(jìn)程PC結(jié)束打印進(jìn)程PCB順序循環(huán)循環(huán)五、程序源源代碼#inclludee sttdaffx.hh#inclludee #inclludee #inclludee #inclludee #inclludee #inclludee usingg nammesppacee

5、 sttd;ofstrreamm myyfille(bb.txtt,iios:appp|ioss:ttrunnc);typeddef strructt noode chaar nnamee100;/*進(jìn)程程名*/ intt rooundd; /*進(jìn)程程分配的的時(shí)間片片*/ intt cpputiime; /*進(jìn)程程消耗的的CUPP時(shí)間*/ intt neeedttimee; /*進(jìn)程程需要的的CUPP時(shí)間*/ intt coountt; /*進(jìn)程運(yùn)運(yùn)行時(shí)間間*/ chaar sstatte; /*進(jìn)程程的狀態(tài)態(tài):RR:運(yùn)運(yùn)行,W:等待,F:結(jié)束束*/ strructt noode *neext

6、;/*指向向下一個(gè)個(gè)進(jìn)程的的指針*/ PCB;PCB *finnishh,*rreaddy,*taiil,*runn;/*指向三三個(gè)隊(duì)列列的隊(duì)首首的指針針,taail為為就緒隊(duì)隊(duì)列的隊(duì)隊(duì)尾指針針*/ int NN;/*定義進(jìn)程程的數(shù)目目*/ void firrstiin(voiid) iif(rreaddy!=NULLL) ruun=rreaddy; reeadyy=reeadyy-nnextt; ruun-staate=R; ruun-nexxt=NNULLL; eelsee runn=NUULL; void prtt1(ccharr a)couttnamme cpuutimme neeed

7、tiime coountt rrounnd sstatteenndl;myfiilennamee ;myffilee cpuutimme;myffilee neeedttimee;myffilee couunt ;mmyfiile rrounnd;myffilee staateeendll; void prtt2(ccharr a,PCBB *pp) couttnnamee cpuutimme neeedttimee ccounnt rouund staateenndl;myfiilenaame ;myyfillecpuutimme ;myyfilleneeedtiime ;myffileec

8、counnt ;mmyfiilerooundd ;myffileesstatteneext; p=ffiniish; whiile(p!=NULLL) prrt2(alggo,pp); p=p-nexxt; gettchaar();void inssertt(PCCB *q) ttaill-nnextt=q; ttaill=q; qq-nnextt=NUULL; void rcrreatte_ttaskk(chhar alggo) PCBB *pp; intt n,timme; chaar nna110; reaady=NULLL; finnishh=NUULL; runn=NUULL; co

9、uutNN; forr(n=0;nnN;n+) p=(PCBB*)mmallloc(sizeeof(PCBB); couutEnnterr thhe nnamee off prroceess:nna; couutEnnterr thhe ttimee off prroceess:ttimee; strrcpyy(p-naame,na); p-cpuutimme=00; p-neeedtiime=timme; p-couunt=0; p-staate=W; p-rouund=2; if(reaady!=NUULL) innsert(p); elsse pp-nnextt=reeadyy; rre

10、addy=pp; ttaill=p; run=reaady; readdy=rreaddy-nexxt; run-sttatee=RR; coutt創(chuàng)建成成功。coountt=rrun-rooundd) rrun-coountt=0; iif(rreaddy!=NULLL) ruun-staate=W; innserrt(rrun); fiirsttin(); pprt(alggo);void rouundrrun(chaar aalgoo) whiile(runn!=NNULLL) runn-ccputtimee=ruun-cpuutimme+11; runn-nneeddtimme=rru

11、n-neeedttimee-1; runn-ccounnt=rrun-coountt+1; if(runn-nneeddtimme=0) rrun-neext=finnishh; ffiniish=runn; rrun-sttatee=FF; rrun=NULLL; iif(reeadyy!=NNULLL) fiirsttin(); ellse if(rrun-coountt=rrun-rooundd) runn-ccounnt=00; if(rreaddy!=NULLL) ruun-staate=W; innserrt(rrun); fiirsttin(); prrt(aalgoo); vo

12、id caiidann() couut*主頁*enndl; couut*11.I 創(chuàng)建若若干進(jìn)程程*enndl; couut*22.C 進(jìn)程進(jìn)進(jìn)行查看看*enndl; couut*33.O 進(jìn)程進(jìn)進(jìn)行調(diào)度度*enndl; couut*44.H 結(jié)束束 *allgo;if(aalgoo=i|allgo=II) rccreaate_tassk(aalgoo); eelsee if(aalgoo=c|allgo=CC) cchakkan(alggo); elsee if(aalgoo=o|allgo=OO)rouundrrun(alggo);elsee if(aalgoo=h|allgo=HH)go

13、tto lloopp2;gotoo looop11;loop22: myfiile.cloose();retuurn 0;六、運(yùn)行結(jié)結(jié)果七、問題及及解決方方法 (1) 處理器器調(diào)度總總是選隊(duì)隊(duì)首進(jìn)程程運(yùn)行。采采用動(dòng)態(tài)態(tài)改變優(yōu)優(yōu)先數(shù)的的辦法,進(jìn)進(jìn)程每運(yùn)運(yùn)行一次次優(yōu)先數(shù)數(shù)就減“1”。由于于本實(shí)習(xí)習(xí)是模擬擬處理器器調(diào)度,所所以,對(duì)對(duì)被選中中的進(jìn)程程并不實(shí)實(shí)際的啟啟動(dòng)運(yùn)行行,而是是執(zhí)行(2) 進(jìn)進(jìn)程運(yùn)行行一次后后,若要要求運(yùn)行行時(shí)間0,則再再將它加加入隊(duì)列列(按優(yōu)優(yōu)先數(shù)大大小插入入,且置置隊(duì)首標(biāo)標(biāo)志);若要求求運(yùn)行時(shí)時(shí)間=00,則把把它的狀狀態(tài)修改改成“結(jié)束”(E),且且退出隊(duì)隊(duì)列。(3) 若若“就緒

14、”狀態(tài)的的進(jìn)程隊(duì)隊(duì)列不為為空,則則重復(fù)上上面(11)和(22)的步步驟,直直到所有有進(jìn)程都都成為“結(jié)束”狀態(tài)。(4) 在在所設(shè)計(jì)計(jì)的程序序中應(yīng)有有顯示或或打印語語句,能能顯示或或打印每每次被選選中進(jìn)程程的進(jìn)程程名以及及運(yùn)行一一次后進(jìn)進(jìn)程隊(duì)列列的變化化。(5) 為為五個(gè)進(jìn)進(jìn)程任意意確定一一組“優(yōu)先數(shù)數(shù)”和“要求運(yùn)運(yùn)行時(shí)間間”,啟動(dòng)動(dòng)所設(shè)計(jì)計(jì)的處理理器調(diào)度度程序,顯顯示或打打印逐次次被選中中進(jìn)程的的進(jìn)程名名以及進(jìn)進(jìn)程控制制塊的動(dòng)動(dòng)態(tài)變化化過程。八、心得體體會(huì)操作系統(tǒng)是是計(jì)算機(jī)機(jī)系統(tǒng)中中必不可可少的系系統(tǒng)軟件件。它是是計(jì)算機(jī)機(jī)系統(tǒng)中中各種資資源的管管理者和和各種活活動(dòng)的組組織者、指指揮者。操操作系統(tǒng)統(tǒng)采用時(shí)時(shí)間片法法調(diào)度進(jìn)進(jìn)程,使系統(tǒng)統(tǒng)資源得得到充分分的利用用,用戶也也可以花花更少的的時(shí)間完完成更多多的工作作,這次次模擬系系統(tǒng)調(diào)度度進(jìn)程,讓讓我明白白了系統(tǒng)統(tǒng)時(shí)間片片的調(diào)度度

溫馨提示

  • 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. 人人文庫(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)論