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

下載本文檔

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

文檔簡介

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

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

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

4、它它插入就就緒隊列列等待CPU。每進行一次次調(diào)度程程序都打打印一次次運行進進程、就就緒隊列列、以及及各個進進程的 PCCB,以便便進行檢檢查。重復(fù)以上過過程,直直到所要要進程都都完成為為止四、程序流流程圖開始開始設(shè)置時間片設(shè)置時間片選擇選擇增加增加進程 是結(jié)束進程結(jié)束進程PCB順序繼續(xù)增加PCB順序繼續(xù)增加調(diào)度進程調(diào)度進程結(jié)束打印進程PC結(jié)束打印進程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;/*進程程名*/ intt rooundd; /*進程程分配的的時間片片*/ intt cpputiime; /*進程程消耗的的CUPP時間*/ intt neeedttimee; /*進程程需要的的CUPP時間*/ intt coountt; /*進程運運行時間間*/ chaar sstatte; /*進程程的狀態(tài)態(tài):RR:運運行,W:等待,F:結(jié)束束*/ strructt noode *neext

6、;/*指向向下一個個進程的的指針*/ PCB;PCB *finnishh,*rreaddy,*taiil,*runn;/*指向三三個隊列列的隊首首的指針針,taail為為就緒隊隊列的隊隊尾指針針*/ int NN;/*定義進程程的數(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)建若若干進程程*enndl; couut*22.C 進程進進行查看看*enndl; couut*33.O 進程進進行調(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;六、運行結(jié)結(jié)果七、問題及及解決方方法 (1) 處理器器調(diào)度總總是選隊隊首進程程運行。采采用動態(tài)態(tài)改變優(yōu)優(yōu)先數(shù)的的辦法,進進程每運運行一次次優(yōu)先數(shù)數(shù)就減“1”。由于于本實習習是模擬擬處理器器調(diào)度,所所以,對對被選中中的進程程并不實實際的啟啟動運行行,而是是執(zhí)行(2) 進進程運行行一次后后,若要要求運行行時間0,則再再將它加加入隊列列(按優(yōu)優(yōu)先數(shù)大大小插入入,且置置隊首標標志);若要求求運行時時間=00,則把把它的狀狀態(tài)修改改成“結(jié)束”(E),且且退出隊隊列。(3) 若若“就緒

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論