操作系統(tǒng)先來先服務(wù)算法FCFSC語言_第1頁
操作系統(tǒng)先來先服務(wù)算法FCFSC語言_第2頁
操作系統(tǒng)先來先服務(wù)算法FCFSC語言_第3頁
操作系統(tǒng)先來先服務(wù)算法FCFSC語言_第4頁
操作系統(tǒng)先來先服務(wù)算法FCFSC語言_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、調(diào)度算法程序設(shè)計實驗報告實驗報告題目名稱C語言實現(xiàn)調(diào)度算法程序設(shè)計實驗報告-先來先服務(wù)FCFS院系a班級完成時間指導(dǎo)老師本次實驗 成績主 要 原 理 及 所 參 考 的 資 料算法原理:設(shè)計程序模擬進程的先來先服務(wù) FCFS過程。假設(shè)有n個進程分別 在Tl,,Tn時刻到達系統(tǒng),它們需要的服務(wù)時間分別為 S,,Sn。 分別米用先來先服務(wù)FCFS調(diào)度算法進行調(diào)度,計算每個進程的完成 時間,周轉(zhuǎn)時間和帶權(quán)周轉(zhuǎn)時間,并且統(tǒng)計 n個進程的平均周轉(zhuǎn)時間 和平均帶權(quán)周轉(zhuǎn)時間。程序要求如下:1 )進程個數(shù) n;每個進程的到達時間 ,n和服務(wù)時間Si,,S no2)要求采用先來先服務(wù)FCFS調(diào)度進程運行,計算每

2、個進程的周 轉(zhuǎn)時間,帶權(quán)周轉(zhuǎn)時間,并且計算所有進程的平均周轉(zhuǎn)時間,帶權(quán)平 均周轉(zhuǎn)時間;3)輸出:要求模擬整個調(diào)度過程,輸出每個時刻的進程運行狀態(tài),如“時刻3:進程B開始運行”等等;4)輸出:要求輸出計算出來的每個進程的周轉(zhuǎn)時間,帶權(quán)周轉(zhuǎn)時間, 所有進程的平均周轉(zhuǎn)時間,帶權(quán)平均周轉(zhuǎn)時間。主要參考書:計算機操作系統(tǒng)第三版西安電子科技大學(xué)出版社湯小丹主編主要算法具體實驗實現(xiàn)提示:用C語言實現(xiàn)提示:1)程序中進程調(diào)度時間變量描述如下: static int MaxNum=100;int ArrivalTimeMaxNum;int ServiceTimeMaxNum;int Fini shTimeMax

3、Num;int WholeTimeMaxNum;double WeightWholeTimeMaxNum; double AverageWT FCFS;double AverageWWT_FCFS;2)進程調(diào)度的實現(xiàn)過程如下:變量初始化;接收用戶輸入n,T1,,T n, $,$ n;按照選擇算法進行進程調(diào)度,計算進程的完成時間、周轉(zhuǎn)時 間和帶權(quán)周轉(zhuǎn)時間;計算所有進程的平均周轉(zhuǎn)時間和平均帶權(quán)周轉(zhuǎn)時間; 按格式輸出調(diào)度結(jié)果。實 驗 要 求1.程序流程圖2.程序源代碼#in cludestdio.h#in cludestdlib.htypedef struct PCB/定義進程控制塊 char n

4、ame10;/ 進程名char state; /運行狀態(tài)int ArriveTime; 到達時間int StartTime; 進程開始時間int Fi nishTime; 進程結(jié)束時間int ServiceTime; 服務(wù)時間float WholeTime;/ 周轉(zhuǎn)時間float WeightWholeTime;/ 帶權(quán)周轉(zhuǎn)時間 double AverageWT_FCFS; / 平均周轉(zhuǎn)時間 double AverageWWT_FCFS;/帶權(quán)平均周轉(zhuǎn)時間 struct PCB *n ext;/指向下個進程pcb;double x=0,y=0;int i;int time;/ 計時器int n

5、;/進程個數(shù)pcb *head=NULL,*p,*q; / 進程鏈表指針void run_FCFS(pcb *p1) /運行未完成的進程time = p1-ArriveTime time? p1-ArriveTime:time; p1-StartTime=time;printf(n 時刻:%d,當(dāng)前開始運行作業(yè) %snn”,time,p1-name); time+=p1-ServiceTime;p1-state=T;p1-Fi nishTime=time;p1-WholeTime=p1- Fini shTime-p1-ArriveTime; p1-WeightWholeTime=p1-Whol

6、eTime/p1-ServiceTime; x+=p1-WholeTime;y+=p1-WeightWholeTime; p1-AverageWT_FCFS=p1-WholeTime/n;p1-AverageWWT_FCFS=p1-WeightWholeTime/n;prin tf(到達時間開始時間服務(wù)時間完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間n);prin tf(%6d%10d%10d%8d%10.1f%10.2f n,p1-ArriveTime,p1-StartTime,p1-ServiceTime,p1- Fini shTime,p1-WholeTime,p1-WeightWholeTime);

7、printf(n平均周轉(zhuǎn)時間平均帶權(quán)周轉(zhuǎn)時間n);printf(%10.2f%10.2fn,p1-AverageWT_FCFS,p1-AverageWWT_FCFS);void FCFS() /找到當(dāng)前未完成的進程int i;p=head;for(i=0;i state=F)q=p;/標(biāo)記當(dāng)前未完成的進程run_FCFS(q);p=p-n ext;void getI nfo()獲得進程信息并創(chuàng)建進程int num;printf(n 進程個數(shù):);sca nf(%d,&n);for(num=0;numn ame,&p-ArriveTime,&p-ServiceTime); if(head=NUL

8、L)head=p;q=p;time=p-ArriveTime;if(p-ArriveTime ArriveTime;q_n ext=p;p-StartTime=0;p- Fini shTime=0;p-WholeTime=0;p-WeightWholeTime=0;p- next=NULL;p-state=F;q=p;void mai n()printf(先來先服務(wù)FCFS算法模擬n);get In fo();p=head;FCFS();3.程序運行調(diào)試結(jié)果it首達時間ain眼務(wù)時閭ih沖,0朮琨名到達時血眼矣討|三! 1D*r嚳翳墻達時間飆務(wù)時間C34時卻h孔卷前開始運行作血到達時間開始時叵朋備時間完一戒對間周轉(zhuǎn)時問帶權(quán)周轉(zhuǎn)旺可B55s.n1.RB悴為周轄時冋三血帝相嗎拷罰閭1,6乩!H田協(xié);5 .當(dāng)前開始運斤作業(yè)B到達時閆開塢時同廉務(wù)時間完咸酎間周轉(zhuǎn)時間帶權(quán)周轍寸間2571210.0143斥均周轉(zhuǎn)時間平墳帶權(quán)罔轉(zhuǎn)吋間3.33時那也當(dāng)前開力孑丟亍作吐G利詁利引升塢時間般醬甘間完成時間周轉(zhuǎn)時It帶權(quán)周轉(zhuǎn)時間31

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論