版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實用文檔先來先效勞FCFS和短作業(yè)優(yōu)先SJF進程調度算法1、實驗目的通過這次實驗,加深對進程概念的理解,進一步掌握進程狀態(tài)的 轉變、進程調度的策略及對系統(tǒng)性能的評價方法.2、需求分析范圍:0<Num<=100范圍:范圍:(1)輸入的形式和輸入值的范圍輸入值:進程個數(shù)Num依次輸入Numb進程的到達時間依次輸入Nunt進程的效勞時間輸入要使用的算法(1-FCFG 2-SJF)范圍:1或者2(2)輸出的形式(X表示變量)時刻X:進程沏始運行. 其完成時間:X周轉時間:X帶權周轉時(省略(Num-力個)平均周轉時間:X平均帶權周轉時間:X(3)程序所能到達的功能輸入進程個數(shù)Num,每個進
2、程到達時間ArrivalTimei,效勞時間ServiceTimei.采用先來先效勞FCFS或者短作業(yè)優(yōu)先SJF8程調度算 法進行調度,計算每個進程的完成時間、周轉時間和帶權周轉時間, 并且統(tǒng)計Num個進程的平均周轉時間和平均帶權周轉時間.3、概要設計標準實用文檔說明本程序中用到的所有抽象數(shù)據(jù)類型的定義、 主程序的流程以及各程序模塊之間的層次(調用)關系.4、詳細設計5、調試分析(1)調試過程中遇到的問題以及解決方法,設計與實現(xiàn)的回憶討論和分析o開始的時候沒有判斷進程是否到達,導致短進程優(yōu)先算法運 行結果錯誤,后來加上了判斷語句后就解決了改問題.根本完成的設計所要實現(xiàn)的功能,總的來說,FCF編
3、寫容易,SJF 需要先找到已經到達的進程,再從已經到達的進程里找到進程效勞時 間最短的進程,再進行計算.(2)算法的改良設想改良:即使用戶輸入的進程到達時間沒有先后順序也能準確 的計算出結果.(就是再加個循環(huán),判斷各個進程的到達時間先后, 組成一個有序的序列)(3)經驗和體會通過本次實驗,深入理解了先來先效勞和短進程優(yōu)先進程調 度算法的思想,培養(yǎng)了自己的動手水平,通過實踐加深了記憶.6、用戶使用說明(1)輸入進程個數(shù)Num標準實用文檔(2)依次輸入Numt進程的到達時間(3)依次輸入Numt進程的效勞時間(4)選擇要使用的算法7、測試結果正確一(FCFS :*-1 - ,»-* w
4、*-r - «-r-» wa -u u tii-» «- yj uj 1 m-»- umj - u m i-r m »-j »-aim -u mj >«j »- »- u »j m m-j m m_r r» »-j «- mj m-» - u m混越湎康葡配:得我擇王荏三近事羊二MMMM X MMX M M'K:MM MM 9C M M M K MTK M M M K M M M K M MX M M X M M KM :MM M
5、M M M K M M M K M M K W K M K M MX MM M M X 請輸入進程個數(shù),5-0 12 3 4-:!: = 1一百日百1日一日一 HI遲遲這比達 到.JIIL第 1?IJL 擔 的的的的的 程黃程里 在主任1_tafrta> 工許工、-A 生-小小 12 3 4 5 HS 小小5小jtx時間:14帶枕-2-SJF>= 1月日,IH日日一,AU小itxu旭?鬻螞 g qi、- / J J I T I 或寸間,12周巷時代 5成時(電14 ;10航11IH時間P 18周轉時間F B=雄鋅工開始運貨.春檄開始量入 整氟藕索 周轉時間 9 帶楨周轉時間 2.8
6、z否否擦使用用程程,住,p叱,葉率件睛,按其他任意所退出:. 父歌拚者B=正確一(SJF):標準實用文檔正確二FCFS :生 F緊作殺柴軸&'實,-VD&bngFCF3annWF. esc13 4 6一 EH巴 5j-b. &ttMe.1:k&t 達達這達達1個進2個進3個進4個進5個進-b 7 9 B 2官一日,0,|日,|曰,程的強程的赧姿向 遑的軀南 程的熊務生 程的效勞國1個iS2個進口不進4 t進5襁請請請請選擇我使用的算法U-FC理.2TJFH 17 3 S 5 - -4 2 V11 : Off可可 可m £國. ,3%.寓.銬 一
7、 二 U 4U' ± " 挪現(xiàn)蠲 周身妹爭L29y 1111 1上 ; Bs.周5 3 S2 12 251戈戈咸辰成“周周周,七IIF工 勘ff提島 糜小浦a r*fi婦始 開開量程茬同轉專及 - -8 - 414 121523周帶均均 時時此時時2否繼續(xù)使用該程序,按9,或,打模繼續(xù),按其他任貢曜漏十 .標準實用文檔正確二SJF:二畏作系續(xù)賣著工尖,一¥»鈉11E因曜血.1甘.esc蹈9 32 62,72.rn5 : 21間1間I %B周轉 板酢穆司 嗨甯 帶叱嚓4 5; 5 - 司 同L 1H. I th "印 JO間町力膽B(tài)B巴I
8、K 達達達達達- -_-F-JSmsI?兄艮口兄的的的的的 進第進進75- 1 2 o5 8 1一一時郡一三其4具耳一子印弟雜雜-AP-進進進進進一個個個個個-1 2 3 4 b - 12345 -哥莒而高野 _HIrQrjAPWferr - 一仄iAiAixiA一iX1A1 Aixix一-市一短理惻利稀一IfT7X #92 好Ba匕-始明隰10間-開路蒙.時 9. 一進:進:H:1MS=17a=周帶均Bit、Brt'kIJRI-l-五 一否繼續(xù)使用該程序,按,贅或,¥叱敕他續(xù),技支出任烹碑混+ :錯誤進程個數(shù)錯誤:-I進程判度算法 刖.眄軟件工程二班李群±61-1
9、1EB9藪數(shù)數(shù)數(shù)個八?進進進進入入入入n- n- KnsKns精精精輛10BI18BI18BI1001睛曲人進程個數(shù);© 混翟個數(shù)遇須大于0且: 髭棋個數(shù)必須大于目且: 幅整個數(shù)必須大于.且二 這卷卜數(shù)必須大于.且:錯誤選擇算法錯誤:標準實用文檔|F=1石歆拼音1用,2-S.TP> = ,2-£JP>=,2-SJP>= 北 TJF ,Z-SJF>:F t p F f F f f FC擇Fer擇FC烽FC洋FG 選選1遍1-陽 去.1去歿之第去if去 .“1-1EF,-11=* V,1- 0-.1&-丁孑 f I&H -選的選的選的選的
10、選 請您嗇戀請£重窿8、附錄*/*進程調度算法 BY : 09軟件工程二班 李群 *#include<iostream>#include<iomanip>using namespace std;static const int Max=100;int ArrivalTimeMax;/到達時間int ServiceTimeMax;/效勞時間int FinishTimeMax;/ 完成時間int WholeTimeMax;/周轉時間double WeightWholeTimeMax;/ 帶權周莊時間double AverageWT_FCFS,AverageWT_S
11、JF; / 平均周轉時間double AverageWWT_FCFS,AverageWWT_SJF;平均帶權周轉時間int ServiceTime_SJFMax;/在 SJF 算法中使用到int Num=0;int NowTime=0;記錄當前時間double SumWT=0,SumWWT=0;/SumWT來計算總的周轉時間,SumWWT計算總的常權周轉時間 int i;int choice;/ 記錄選擇/*/先到先效勞算法/*標準實用文檔void FCFS()/ 找最早到達的(cout<<""<<endl;cout<<"FCF
12、S"<<endl;cout<<""<<endl;for(i=0;i<Num;i+) ( if(ArrivalTimei>NowTime)假設進程到達的時間比現(xiàn)在已經運行的時間NowTim以,說明在NowTime寸刻進程未到達 (NowTime=ArrivalTimei;/把進程的到達時間賦給 NowTime NowTime+=ServiceTimei;/把進程的效勞時間加到 NowTimehFinishTimei=NowTime;/計算完成時間WholeTimei=FinishTimei-ArrivalTimei;/
13、計算周車t時間=完成時間-到達時間WeightWholeTimei=(double)WholeTimei/ServiceTimei;/計算帶權周轉時間=周轉時間/效勞時間 SumWT+=WholeTimei;/計算總的周轉時間 SumWWT+=WeightWholeTimei;/計算總的帶權周轉時間 AverageWT_FCFS=SumWT/Num部均周轉時間 AverageWWT_FCFS=SumWWT/Nuim;均帶權周轉時間 for(i=0;i<Num;i+)/ 依次輸出結果 ( cout<<"時刻"<<FinishTimei-Servi
14、ceTimei<<":進程"<<i+1<<"開始運行."<<"其完成時間:"<<FinishTimei<<" 周轉時間:"<<WholeTimei<<setprecision(3)<<"帶權周轉時間:"<<WeightWholeTimei<<setprecision(3)<<endl; cout<<"平均周轉時間:"<
15、;<AverageWT_FCFS<<endl; cout<<"平均帶權周轉時間:"<<AverageWWT_FCFS<<endl; */短進程優(yōu)先算法/*void SJF()/找已經到達的且效勞時間最短的進程(假定輸入的進程是根據(jù)到達時間先后輸入的)(cout<<""<<endl;cout<<"SJF"<<endl;cout<<""<<endl;int min=0;NowTime=Arriv
16、alTime0+ServiceTime0;/ 計算第一次的 NowTImeFinishTime0=NowTime;/計算第一個進程的完成時間ServiceTime_SJF0=1000;/賦初值.標準實用文檔cout<<"時亥U"<<FinishTime0-ServiceTime0<<":進程"<<1<<"開始運行."int allin=0,j,k; for(i=1;i<Num;i+)/ 進入循環(huán),從第二個到達的進程開始 k=1;min=0; if(allin=0)/ 找
17、到已經到達的進程個數(shù) j=0; while(ArrivalTimej<=NowTime && j<Num)/已經到達的進程 j+; if(j>=Num) allin=1; else j=Num; j=j-1;/j是已經到達的進程數(shù)while(k<=j)/從已經到達的進程里找到效勞時間最短的進程if(ServiceTime_SJFk=0)/進程的效勞時間如果等于 0,那么跳過該進程k+; else if(ServiceTime_SJFmin>ServiceTime_SJFk)/ 比擬,找到效勞時間最短的進程 min=k; k+; ServiceTim
18、e_SJFmin=0;/找完后置零,便于下一次循環(huán)時使用NowTime+=ServiceTimemin;/ 累加當前時間 FinishTimemin=NowTime;/完成時間 for(i=0;i<Num;i+)/ 計算周轉時間,帶權周轉時間,總的周轉時間和總的帶權周轉時間 WholeTimei=FinishTimei-ArrivalTimei; WeightWholeTimei=(double)WholeTimei/ServiceTimei; SumWT+=WholeTimei; SumWWT+=WeightWholeTimei; 標準實用文檔AverageWT_SJF=SumWT/N
19、um;/F均周轉時間AverageWWT_SJF=SumWWT/NunW 帶權周轉時間cout<<"其完成時間:"<<FinishTime0<<" 周轉時間:"<<WholeTime0<<setprecision(3)<<"帶權周轉時間:"<<WeightWholeTime0<<setprecision(3)<<endl;for(i=1;i<Num;i+)輸出結果cout<<"時刻"<
20、<FinishTimei-ServiceTimei<<":進程"<<i+1<<"開始運行."<<"其完成時間:"<<FinishTimei<<" 周轉時間:"<<WholeTimei<<setprecision(3)<<" 帶權周轉時間 : "<<WeightWholeTimei<<setprecision(3)<<endl; cout<&l
21、t;"平均周轉時間:"<<AverageWT_SJF<<endl; cout<<"平均帶權周轉時間:"<<AverageWWT_SJF<<endl; */輸入函數(shù)/*void input()cout<<"請輸入進程個數(shù):"cin>>Num;while(Num>100|Num<=0)cout<<"進程個數(shù)必'須大于0且小于等于100!請重新輸入進程個數(shù): cin>>Num;cout<<&q
22、uot;"<<endl;for(i=0;i<Num;i+)cout<<"請輸入第"<<i+1<<"個進程的到達時間:"cin>>ArrivalTimei;cout<<""<<endl;for(i=0;i<Num;i+)int data=0;cout<<"請輸入第"<<i+1<<"個進程的效勞時間:"cin>>data;ServiceTimei=data;Ser
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版人防工程施工合作合同版B版
- 2025年度企業(yè)健康管理與職工福利合同3篇
- 2024年簡約室內裝潢協(xié)議
- 2024年標準企業(yè)車輛租賃合同模板一
- 2024年長途客運與貨運聯(lián)運合同3篇
- 企業(yè)信息安全5篇范例
- 2024年車位買賣與租賃的綜合合同
- 2024薪資保密制度與員工職業(yè)發(fā)展及培訓計劃合同3篇
- 榆林職業(yè)技術學院《JavaEE編程技術》2023-2024學年第一學期期末試卷
- 華南理工大學《機器人傳感器及其信息融合技術》2023-2024學年第一學期期末試卷
- 2025寒假散學典禮(休業(yè)式)上校長精彩講話:以董宇輝的創(chuàng)新、羅振宇的堅持、馬龍的熱愛啟迪未來
- 安徽省示范高中2024-2025學年高一(上)期末綜合測試物理試卷(含答案)
- 安徽省合肥市包河區(qū)2023-2024學年九年級上學期期末化學試題
- 售樓部保安管理培訓
- 2024年高壓電工證理論考試題庫(含答案)
- 倉儲培訓課件模板
- 2023-2024學年仁愛版七上期末考試英語(試題)
- 2024年醫(yī)院培訓計劃
- GB/T 44914-2024和田玉分級
- 2023年湖南出版中南傳媒招聘筆試真題
- 2024年度企業(yè)入駐跨境電商孵化基地合作協(xié)議3篇
評論
0/150
提交評論