先來先服務調度算法 實驗四報告_第1頁
先來先服務調度算法 實驗四報告_第2頁
先來先服務調度算法 實驗四報告_第3頁
先來先服務調度算法 實驗四報告_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

操作系統實驗四設計先來先服務進程調度模擬算法實驗提示:進程個數至少5個以上(動態),也可讓用戶動態輸入,每個進程由一個進程控制塊來標識,進程控制塊的內容根據情況自己設計,但至少要有進程名、進程狀態、到達時間、估計運行時間信息;設計一個先進先出隊列和系統時間,調度時,總是選擇隊列頭部(到達時間最早)的進程;當進程到達時間小于系統時間時,進程執行,當在當前時間沒有到達的進程時,可安排延時來模擬閑逛進程。由于本實驗為模擬實驗,所以被選中調度進程并不實際啟動運行,而僅執行按估計運行時間延時,并輸出進程的開始和結束運行信息模擬進程的運行,而且省去進程的現場保護和現場恢復工作。在所設計的程序中應有顯示或打印語句,能顯示或打印就緒隊列中的進程、正運行進程的進程名、開始運行時間、結束運行時間等,給出各進程的周轉時間和平均周轉時間。實驗要求:實驗報告中要給出流程圖和源程序,源程序中要附有詳細的注釋,給出程序運行時的輸入值和運行結果總結收獲或對該題的改進意見和見解。流程圖:

P->STATE==’F’?i<n?Q->ARRIVETIME>TIMEYYYNNNQ->STARTTIME=ARRIVETIMEQ->STATE=,TP->STATE==’F’?i<n?Q->ARRIVETIME>TIMEYYYNNNQ->STARTTIME=ARRIVETIMEQ->STATE=,T,Q->STARTTIME=TIMEQ->STATE=,TP=Q;P=P->NEXT;P=P->NEXT;i++;輸出執行進程信息|P=HEAD;4=0—. 開始結束源程序:#includeb|stdiQ.hb,#includeHstdlib.hp,typedefstructpcbM井吞斥制出<charm[3];Mil程與charname[l.o];FALL程?凸charstate;"運行M.態intarrlvetlme;//tiJhAbJ問i「rstarrtlme:"11程開始日、」回mrfinlshtimr;Z/.Ui*呈土盲未uJ|可mrscrvicetime;//^R11-J|'n]floatrijrnarouncltlme;IJf^]floatwelghrpdrurnarojndtlme;//帶』況JAH與IJi可structPCB*next;〃:IB向下個迥3三?pcb;mttime;//計時器mtn; //i井片T抵pcb*head=NULL*p*q;/點井方井voidruntcfs(pcb*pl)/牛、們木無成的拼&<time—p1---arrivetime::-Lime?pl-:-anivetime;Lime;pl->staiLtime—Lime;pi'intfC\n現在時間是"Mid,開梁二運行作業IM>s\n"JSnie,pl->nanie3;time-l-—p1->seivicetime;pl->state—,T1;pl->flnlslitlme-Llme;pl-^Lumaroundtlme=pL->flnlilitlime-pL^arrivetime;pl-?welghtedcurnarojndcime=pl->turnaroundtlme/pl->servlcetlme;pnntFflD到達時問開始時問服務時間完成時間用轉日寸問帶權周轉時間VO;|]riinf(""<%s<%6dc^Lad^iad^sd*^ >TirjT|]i->arrivetime,p】->staiTtime,pl->servicetime,.pl-inishtimerpl->turnaraurdtime,.pl-*bvsightedturnaraundtime);Eidrcrs()■'iML^TLhzr-^llfZ<irLbj;p—head;for(i=O;i<rji—)<if(p>state——T'Jq=p; 株記、“宙w穴-L.們沮程run_fcfs(q);>p-p->next;veingetinfoQ "就號li迫伯血并:d建.'ll程liiLnuiT;p『int(n誰業個數:,scanf("%d,,&n)jfor(num:O;num<n;mjm--)p—(pch*JmaIIdc(sizeof(pchJ];「5廿(節*場."\pllD沮程巖"到:1U.:□床與」.「i可W);seanf("%s\t%s\mdd”,&p->ioz&p->nane?&p->aoivetime^>servicetme);iffhead——null){head-p;q-p;time—p->arrivetime;}if[p->arriwetime<time)time-p->arrivetime;q->next=p;p->starttime=0;p->nmshtime=o;p->turnai_|oundtime=0;p->weightedturnaroundtime=0;p->riext=NULL;p->state='Ff;q=p;}voidmain()piinLC先末先IIW「尊.:夫模擬,getrnfoO;phead;}輸入值:到達時間服務時間34到達時間服務時間345TOC\o"1-5"\h\zABC3名??:程A個輸雯11)1運行結果:3名??:程A個輸雯11)1到詁時間脂務時間343C 4 5IE到到時間開始時同服苗時間完成時間周轉時間帶權周轉時間122353100£334S6150344E14102.00總結收獲:通過本次實驗,我了解到如果早就緒的進程排在就緒隊列的前面,遲就緒的進程排在就緒隊列的后面,那么先來先服務總是把當前處于就緒隊列之首的那個進程調度到運行狀態。也就說,它只考慮進程進入就緒隊列的先后,而不考慮它的下一個CPU周期的長短及其他因素。FCFS算法簡單易行,是一種非搶占式策略,但性能卻不大好。先來先服務的調度算法:最簡單的調度算法

溫馨提示

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

評論

0/150

提交評論