操作系統(tǒng)C進程調(diào)度算法實驗_第1頁
操作系統(tǒng)C進程調(diào)度算法實驗_第2頁
操作系統(tǒng)C進程調(diào)度算法實驗_第3頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、華北科技學(xué)院計算機系綜合性實驗實驗報告課程名稱操作系統(tǒng)C實驗學(xué)期 2012 至 2013 學(xué)年 第 2 學(xué)期學(xué)生所在系部計算機系年級 2010專業(yè)班級網(wǎng)絡(luò)B10學(xué)生姓名學(xué)號任課教師杜杏菁實驗成績計算機系制操作系統(tǒng)C課程綜合性實驗報告開課實驗室:基礎(chǔ)六機房2013年 6月 3日實驗題目進程調(diào)度算法模擬一、實驗?zāi)康耐ㄟ^對進程調(diào)度算法的模擬,進一步理解進程的基本概念,加深對進程運行狀態(tài)和進程調(diào)度過程、 調(diào)度算法的理解。二、設(shè)備與環(huán)境1. 硬件設(shè)備:PC機一臺2. 軟件環(huán)境:安裝 Windows操作系統(tǒng)或者Linux操作系統(tǒng),并安裝相關(guān)的程序開發(fā)環(huán)境,如CC+Java等編程語言環(huán)境。三、實驗內(nèi)容(1)

2、 用C語言(或其它語言,如 Java)實現(xiàn)對N個進程采用某種進程調(diào)度算法(如動態(tài)優(yōu)先權(quán) 調(diào)度)的調(diào)度。(2) 每個用來標識進程的進程控制塊PCB可用結(jié)構(gòu)來描述,包括以下字段:進程標識數(shù)ID。進程優(yōu)先數(shù)PRIORITY,并規(guī)定優(yōu)先數(shù)越大的進程,其優(yōu)先權(quán)越高。進程已占用 CPU時間CPUTIME。進程還需占用的 CPU時間ALLTIME。當(dāng)進程運行完畢時,ALLTIME變?yōu)?。進程的阻塞時間 STARTBLOCK,表示當(dāng)進程再運行 STARTBLOCK個時間片后,進程將進 入阻塞狀態(tài)。進程被阻塞的時間 BLOCKTIME,表示已阻塞的進程再等待BLOCKTIME 個時間片后,將轉(zhuǎn)換成就緒狀態(tài)。進程

3、狀態(tài)STATE。隊列指針NEXT,用來將PCB排成隊列。(3)優(yōu)先數(shù)改變的原則:進程在就緒隊列中呆一個時間片,優(yōu)先數(shù)增加1。進程每運行一個時間片,優(yōu)先數(shù)減3。(4)為了清楚地觀察每個進程的調(diào)度過程,程序應(yīng)將每個時間片內(nèi)的進程的情況顯示出來,包 括正在運行的進程,處于就緒隊列中的進程和處于阻塞隊列中的進程。四、實驗結(jié)果及分析1實驗代碼#i nclude <stdio.h>#in clude<iostream>using n amespace std;struct programchar n ame;int atime;int stime;int ftime;int rti

4、me; float qrtime;/*進程名*/*到達時間*/*服務(wù)時間*/*完成時間*/*周轉(zhuǎn)時間*/*帶權(quán)周轉(zhuǎn)時間*/void xia nshi(struct program a,i nt n) int i,j;struct program t;/*將進程按時間排序*/printf(”根據(jù)到達時間重新排序:n");printf(”*進程*到達時間* 服務(wù)時間*n “);for(j=0;j< n_1;j+)for(i=0;i< n-1-j;i+)if(ai.atime>ai+1.atime)t.atime=ai.atime;ai.atime=ai+1.atime;

5、ai+1.atime=t.atime;t. name=ai. name;ai. name=ai+1. name;ai+1. name=t. name;t.stime=ai.stime;ai.stime=ai+1.stime;ai+1.stime=t.stime;for(i=0;i< n; i+)prin tf(" %c%dai.atime,ai.stime);printf(”n");%d|n ”,ai. name,void fcfs(struct program a,i nt n)int i;int time=0;for(i=0;i< n;i+)time=tim

6、e+ai.stime;ai.ftime=time;ai.rtime=ai.ftime-ai.atime;ai.qrtime=(float)ai.rtime/ai.stime;printf("nFCFS 算法:n");printf("* 進程*到 達 時間*完成時 間* 周轉(zhuǎn)時 間帶權(quán)周轉(zhuǎn)時間*n");for(i=0;i< n;i+)printf(" %c%d%.2d%.2d%.2f|n ”,ai. name,ai.atime,ai.ftime,ai.rtime,ai.qrtime);printf("void mai n()int

7、 i,m;n “);struct program pro4;/*創(chuàng)建進程 */printf(”* 先來先服務(wù)算法 *n");printf(”請輸入進程的數(shù)目:n");scan f("%d",&m);i=m;for(i=0;i<m;i+)printf("請輸入進程%d的進程名,到達時間,服務(wù)時間n",i+1);cin> >proi. name»proi.atime»proi.stime;xia nshi(pro,m);fcfs(pro,m);getchar();2實驗結(jié)果進程的初始化,先輸入

8、進程的數(shù)目。創(chuàng)建3個進程,并且分別給它們的進程ID、到達時間、服務(wù)時間賦值。首先根據(jù)到達時間重新將進程按由小到大的順序排序,然后再使用FCFS算法,模擬進程快調(diào)度過程。3實驗結(jié)果分析本次進程調(diào)度算法采用的是先來先服務(wù)(FCFS)調(diào)度算法,這是一種最簡單的調(diào)度算法,該算法既可以用于作業(yè)調(diào)度,也可以用于進程調(diào)度。再作業(yè)調(diào)度中采用該算法時,每次調(diào)度都是從后備作業(yè)隊列中選擇一個或多個最先進入該隊列的作業(yè),將它們調(diào)入內(nèi)存,為它們分配資源、創(chuàng)建進程,然后放入就緒隊列。再進程調(diào)度中采用FCFS算法時,則每次調(diào)度是從就緒隊列中選擇一個最先進入該隊列的進程,為之分配處理機,使之投入運行。該進程一直運行到完成或發(fā)

9、生某事件而后才放棄處理機。此次實驗輸入了 n個進程為例子。它們的名稱分別為a,b,c,達到時間分別為 2,0,1需要服務(wù)的時間分別為3,2,5。然后根據(jù)它們的到達時間進行重新排列,插入就緒隊列之中。之后,再通過 FCFS算法為它們分配處理機,進行處理。將它們的完成時間記錄到自身的成員變量ftime之中,然后通過公式:周轉(zhuǎn)時間 =完成時間-達到時間,計算出周轉(zhuǎn)時間。再通過公式:帶權(quán)周轉(zhuǎn)時間=周轉(zhuǎn)時間/服務(wù)時間。計算出帶權(quán)周轉(zhuǎn)時間??梢钥闯觯捎肍CFS算法,先來的進程優(yōu)先服務(wù),它們的帶權(quán)周轉(zhuǎn)時間都要比之后的進程要短。五、實驗心得經(jīng)過這次課程設(shè)計,把課本中的理論知識轉(zhuǎn)化為實踐,在一定程度上加深了對

10、優(yōu)先級數(shù)調(diào)度和循環(huán)調(diào)度算法的理解,同時提高了我的動手編程能力。雖然在編程的過程中, 遇到了很多的困難。但是我掌握了很多東西。我掌握了先來先服務(wù)的進程調(diào)度算法,掌握了程控制塊的定義,也掌握了對就緒隊列, 完成隊列中節(jié)點的選擇和插入。操作系統(tǒng)中的一個核心的問題就是進程調(diào)度問題。對于不同的作業(yè)條件,情況,特點,都有不同的需求和特性。所以采用合理的有針對性 的進程調(diào)度算法至關(guān)重要。采用的正確的進程調(diào)度算法,不僅可以讓多個進程并發(fā)執(zhí)行,而且還可以最大化的利用處理機的工作時間。這種高效率的調(diào)度策略使得計算機能夠很良好的協(xié)調(diào)各個進程或作業(yè)之間的調(diào)度,從而使得計算機的運算速度有了極大地提高。此外,我也對其它的調(diào)度方法同樣有了一個深刻的了解,而且在對C語言的使用上有了一個新的高度,希望在以后的試驗中做的更好。在將來的學(xué)習(xí)中,我將繼續(xù)努力加深理解操作系統(tǒng)的工作原理。計算機操作系統(tǒng)中運用到了很多知識,我想我們從這門課中學(xué)到的東西不僅僅只是書本上這么點東西,可以說操作系統(tǒng)是所有

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論