先來先服務(wù)進程調(diào)度算法模擬_第1頁
先來先服務(wù)進程調(diào)度算法模擬_第2頁
先來先服務(wù)進程調(diào)度算法模擬_第3頁
先來先服務(wù)進程調(diào)度算法模擬_第4頁
先來先服務(wù)進程調(diào)度算法模擬_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、華北科技學(xué)院計算機學(xué)院綜合性實驗實驗報告課程名稱計算機操作系統(tǒng)實驗學(xué)期2014 至 2015 學(xué)年第_匚學(xué)期學(xué)生所在系部年級 2012專業(yè)班級 學(xué)生姓名林曉玲學(xué)號 201207014133任課教師王祥仲實驗成績計算機學(xué)院制開課實驗室:操作系統(tǒng)課程綜合性實驗報告2011 年 05 月 17日實驗題目進程調(diào)度算法程序設(shè)計一、實驗?zāi)康耐ㄟ^對進程調(diào)度算法的模擬,進一步理解進程的基本概念,加深對進程運行狀 態(tài)和進程調(diào)度過程、調(diào)度算法的理解。二、設(shè)備與環(huán)境硬件設(shè)備:PC機一臺軟件環(huán)境:安裝Windows操作系統(tǒng)或者Linux操作系統(tǒng),并安裝相關(guān)的程序開發(fā)環(huán)境,如C C+Java等編程語言環(huán)境。三、實驗內(nèi)容

2、(1)用C語言(或其它語言,如Java)實現(xiàn)對N個進程采用某種進程調(diào)度算法(如 動態(tài)優(yōu)先權(quán)調(diào)度)的調(diào)度。(2)每個用來標(biāo)識進程的進程控制塊PCB可用結(jié)構(gòu)來描述,包括以下字段:進程標(biāo)識數(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)。進程狀態(tài)STATE

3、 o隊列指針NEXT,用來將PCB排成隊列。(3)優(yōu)先數(shù)改變的原則:進程在就緒隊列中呆一個時間片,優(yōu)先數(shù)增加1o進程每運行一個時間片,優(yōu)先數(shù)減3o(4)為了清楚地觀察每個進程的調(diào)度過程,程序應(yīng)將每個時間片內(nèi)的進程的情況顯 示出來,包括正在運行的進程,處于就緒隊列中的進程和處于阻塞隊列中的進程。(5)分析程序運行的結(jié)果,談一下自己的認(rèn)識。四、實驗結(jié)果及分析實驗設(shè)計說明本次實驗采用C語言模擬對N個進程采用先來先服務(wù)進程調(diào)度算法調(diào)度。每個用來標(biāo)識進 程的進程控制塊PCB用結(jié)構(gòu)來描述,包括以下字段:進程標(biāo)識數(shù)ID3、進程名name10、進程狀態(tài)state、進程到達時間arrivetime、進程開始 執(zhí)

4、行時間starttime、進程執(zhí)行結(jié)束時間finishtime服務(wù)時間servicetime、周轉(zhuǎn)時間turnaroundtime、 帶權(quán)周轉(zhuǎn)時間weightedturnaroundtime、隊列指針next用來將PCB排成隊列。主要程序流程圖(進程的執(zhí)行過程):實驗代碼#includestdio.h”#includestdlib.h”typedef struct PCB/定義進程控制塊char ID3;進程號char name10;進程名char state;運行狀態(tài)int arrivetime; 到達時間int starttime; 進程開始時間int finishtime; 進程結(jié)束時間

5、int servicetime; /服務(wù)時間float turnaroundtime;/周 轉(zhuǎn)時間float weightedturnaroundtime;/帶權(quán)周轉(zhuǎn)時間struct PCB *next; /指向下個進程pcb;int time;計時器int n;進程個數(shù)pcb *head=NULL,*p,*q; /進程鏈表指針void run_fcfs(pcb *p1) 運行未完成的進程 time = p1-arrivetime time? p1-arrivetime:time;p1-starttime=time;printf(n 現(xiàn)在時間是 %d,開始運行作業(yè) sn”,time,p1-na

6、me);time+=p1-servicetime;p1-state=T;p1-finishtime=time;p1-turnaroundtime=p1-finishtime-p1-arrivetime;p1-weightedturnaroundtime=p1-turnaroundtime/p1-servicetime;printf(ID 到達時間開始時間服務(wù)時間完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間n); printf(%s%6d%10d%10d%8d%10.1f%10.2fn,p1-ID,p1-arrivetime,p1-starttime,p1-servicetime,p1-finishtime,

7、p1-turnaroundtime,p1-weightedturnaroundtime);void fcfs() /找到當(dāng)前未完成的進程int i,j;p=head;for(i=0;istate=F)q=p;標(biāo)記當(dāng)前未完成的進程run_fcfs(q);p=p-next;void getInfo()獲得進程信息并創(chuàng)建進程int num;printf(n 作業(yè)個數(shù):”);scanf(%d”,&n);for(num=0;numID,&p-name,&p-arrivetime,&p-servicetime);if(head=NULL) head=p;q=p;time=p-arrivetime;if(p

8、-arrivetime arrivetime;q-next=p;p-starttime=0;p-finishtime=0;p-turnaroundtime=0;p-weightedturnaroundtime=0;p-next=NULL;p-state=F;q=p;void main()printf(先來先服務(wù)算法模擬”);getInfo();p=head;fcfs();實驗結(jié)果測試用例進程名到達時間服務(wù)時間A01B1100C21D3100先來先服務(wù)算法模擬修業(yè)個如4 TOC o 1-5 h z 陶喘入:_ID 到這時間服務(wù)時間01 A01網(wǎng)孺入:_ID謎徨名到這時間服務(wù)時間02 B1100豚

9、烯入:_ID謎徨名到這時間服務(wù)時間 甘3C 21陶榻入:_ID謎起名到這時間服務(wù)時間04D3 100_帆在時間是虬開始屋行作業(yè)計P 到達時間開站時向服務(wù)時間 001完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間11.01.00帆在時間是L開始運行作業(yè)EP 到達時向開菇可荷服務(wù)時間0211100完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間101100.01.00府在8K奇牙霜痢11拓間 0321011完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間102100.0100.00帆在時間是值2 -開始運行佗業(yè)D b 到達時間開始時間胞務(wù)時間043102ISOPress anj key to continue完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間202199.01

10、.99實驗結(jié)果分析先來先服務(wù)算法顧名思義先到的先參與調(diào)度,本利中按照A、B、C、D的順序。因為只有 非搶占方式,所以先到的進程必須執(zhí)行完來才能執(zhí)行下一個進程,下一個進程的開始時間也就取 決于到達時間和上一個進程的結(jié)束時間中較晚的一個,如C進程的到達時間是2,但是B進程 的完成時間是101,所以C進程的開始時間為101。由實驗結(jié)果可以看出,短作業(yè)C的帶權(quán)周轉(zhuǎn)時間竟高達100,而長作業(yè)D的帶權(quán)周轉(zhuǎn)時間僅為1.99,據(jù)此可知,F(xiàn)CFS算法有利于CPU繁忙的作業(yè),而不利于I/O繁忙型的作業(yè)(進程)。實驗心得本次實驗設(shè)應(yīng)用鏈表結(jié)構(gòu)進行存儲并排序,條理清晰,易于理解,程序編寫完成以后,實 現(xiàn)類預(yù)期對結(jié)果。界面設(shè)計比較清晰明了,易于閱讀。本程序中靈活地設(shè)計調(diào)用函數(shù)和函數(shù)嵌套來簡化程序,例如在查找未執(zhí)行進程和對未執(zhí)行 進程執(zhí)行時分別設(shè)計了 void fcfs()和 void run_fcfs(),多個進程運行時均要調(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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論