![時間片輪轉(zhuǎn)調(diào)度算法實驗報告材料_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/bbfa549a-775a-49ce-a8c4-1e0240ae1590/bbfa549a-775a-49ce-a8c4-1e0240ae15901.gif)
![時間片輪轉(zhuǎn)調(diào)度算法實驗報告材料_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/bbfa549a-775a-49ce-a8c4-1e0240ae1590/bbfa549a-775a-49ce-a8c4-1e0240ae15902.gif)
![時間片輪轉(zhuǎn)調(diào)度算法實驗報告材料_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/bbfa549a-775a-49ce-a8c4-1e0240ae1590/bbfa549a-775a-49ce-a8c4-1e0240ae15903.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、XX大學操作系統(tǒng)實驗報告姓名:學號:班級:實驗日期: 實驗名稱:時間片輪轉(zhuǎn)RR進程調(diào)度算法實驗二時間片輪轉(zhuǎn)RR進程調(diào)度算法1. 實驗?zāi)康模和ㄟ^這次實驗,理解時間片輪轉(zhuǎn)RR進程調(diào)度算法的運行原理,進一步掌握進程狀態(tài)的轉(zhuǎn)變、進程調(diào)度的策略及對系統(tǒng)性能的評價方法。2. 需求分析(1)輸入的形式和輸入值的范圍;輸入:進程個數(shù) n范圍:0 n/i,3rDject5RRCehLigRn.exe穩(wěn)鑼簫囂序爲心程名=i.k從4、到大輸人詛程到達時間=litr liif h*hhhC Auii vl jjrut if ua i_u t Ji!# fo lluwiiiy - 迸程容 到達時面 膈務(wù)時閭a.a2&*
2、!hA0同怖吋IT戦時同-務(wù)咸時闔2H 啟諸按到達時間的幀丿字氓從輛入進樨施牌廿I富:t h h h h總帶嘆周牡時間2、概要設(shè)計所有抽象數(shù)據(jù)類型的定義:static int MaxNum=100int ArrivalTime /到達時間int ServiceTime /服務(wù)時間int Fi ni shedTime /結(jié)束時間int WholeTime /周轉(zhuǎn)時間double WeightWholeTime /帶權(quán)周轉(zhuǎn)時間double AverageWT / 平均周轉(zhuǎn)時間double AverageWWT /平均帶權(quán)周轉(zhuǎn)時間主程序的流程:變量初始化接受用戶輸入的n, q , T1.Tn, S1
3、.Sn;進行進程調(diào)度,計算進程的開始運行時間、結(jié)束時間、執(zhí)行順序、周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間;計算所有進程的平均周轉(zhuǎn)時間、平均帶權(quán)周轉(zhuǎn)時間;按照格式輸出調(diào)度結(jié)果。各程序模塊之間的層次(調(diào)用)關(guān)系Main函數(shù)通過對In put函數(shù)進行調(diào)用,對函數(shù)的成員變量進行賦值,再通過RRAIgorithm函數(shù)求出題目要求的各個數(shù)據(jù)結(jié)果,最后通過display函數(shù)對結(jié)果進行格式輸出。3、詳細設(shè)計實現(xiàn)程序模塊的具體算法。void RRAIgorithm()char processMoment1OO; /存儲每個時間片p對應(yīng)的進程名稱RRqueue.push(RRarray0);int processMome ntP
4、o int = 0;int Curre ntTime=0;int tempTime; /聲明此變量控制CurrentTime的累加時間,當前進程的服務(wù)時間小于時間片q的時候,起到重要作用int i=1; /指向還未處理的進程的下標int finalProcessNumber = 0; /執(zhí)行RR算法后,進程的個數(shù)int processTime50;/Curre ntTime的初始化if (RRarray0.ServiceTime=q)Curre ntTime = q;elseCurre ntTime = RRarrayO.ServiceTime;while(!RRqueue.empty()fo
5、r (int j=i;j=RRarrayj.ArrivalTime)RRqueue.push(RRarrayj);i+;if (RRqueue.fro nt().ServiceTimeq)tempTime = RRqueue.fr on t().ServiceTime;elsetempTime = q;RRqueue.fro nt().ServiceTime-= q; /進程每執(zhí)行一次,就將其服務(wù)時間-q/將隊首進程的名稱放入數(shù)組中processMome ntprocessMome ntPoi nt = RRqueue.fro nt( ).n ame;processMome ntPo in t
6、+;processTimefi nalProcessNumber = tempTime;fin alProcessNumber+;if (RRqueue.fro nt().ServiceTime = 0) /把執(zhí)行完的進程退出隊列/RRqueue.fro nt().Fi nishedTime = Curre ntTime;RRqueue.pop(); /如果進程的服務(wù)時間小于等于,即該進程已經(jīng)服務(wù)完了,將其退棧else/將隊首移到隊尾RRqueue.push(RRqueue.fro nt();RRqueue.pop();Curre ntTime += tempTime;/ 進程輸出處理每個時間
7、段對應(yīng)的執(zhí)行的進程coutvv 各進程的執(zhí)行時刻信息: vvsetw(2)vvprocessTime0vv時刻;processTimefi nalProcessNumber=0;int time = processTime0;int count = 0;for (i=0;ifi nalProcessNumber;i+)count = 0;coutsetw(3)vvprocessMome ntivsetw(3)ve ndl;while(RR!=processMomenti & countvn)coun t+;RRarrayco un t.Fi nishedTime
8、= time;if (ifi nalProcessNumber - 1)coutsetw(3)time時刻 setw(2)timeprocessTimei+1時刻setw(3);time += processTimei+1; coute ndl;/周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間、平均周轉(zhuǎn)時間、帶權(quán)平均周轉(zhuǎn)時間的計算/1. 周轉(zhuǎn)時間=完成時間-到達時間2.帶權(quán)周轉(zhuǎn)時間=周轉(zhuǎn)時間/服務(wù)時間for ( i=0;i n;i+) RRarrayi.WholeTimeRRarrayi.Fi nishedTimeRRarrayi.ArrivalTime;RRarrayi.WeightWholeTime(double
9、)RRarrayi.WholeTime/RRarrayi.ServiceTime;double x=0,y=0;for (i=0;i n ;i+)x += RRarrayi.WholeTime;y += RRarrayi.WeightWholeTime;AverageWT = x/n;AverageWWT = y/n;4、調(diào)試分析(1)調(diào)試過程中遇到的問題以及解決方法,設(shè)計與實現(xiàn)的回顧討論和分析 在算法設(shè)計時,由于一開始不知道如何將位于隊首的進程,在執(zhí)行完后如何移至隊尾進行循環(huán),所以思考了很久,后來想到將隊首進程進行重新壓入隊列 從而解決了此問題。(2)算法的性能分析每個進程被分配一個時間段,
10、即該進程允許運行的時間。如果在時間片結(jié)束 時進程還在運行,則CPU將被剝奪并分配給另一個進程。如果進程在時間片結(jié)束 前阻塞或結(jié)束,則CPU當即進行切換。調(diào)度程序所要做的就是維護一張就緒進程 列表,當進程用完它的時間片后,它被移到隊列的末尾。(3)經(jīng)驗體會通過本次實驗,深入理解了時間片輪轉(zhuǎn) RR進程調(diào)度算法的思想,培養(yǎng)了自 己的動手能力,通過實踐加深了記憶。5、用戶使用說明程序的使用說明,列出每一步的操作步驟輸入進程個數(shù)和時間篇長度7、附錄帶注釋的源程序,注釋應(yīng)清楚具體#i nclude #in elude #i nclude #in elude #defi ne MaxNum 100using
11、 n amespace std;typedef structchar n ame;int ArrivalTime;int ServiceTime;int Fini shedTime;int WholeTime;double WeightWholeTime;RR;static queueRRqueue; /聲明一個隊列static double AverageWT =0,AverageWWT=0; static int q; /時間片static int n; /進程個數(shù)static RR RRarrayMaxNum; /進程結(jié)構(gòu)void In put()/文件讀取模式ifstream in D
12、ata;in Data.ope n(./data4.txt);/data.txt 表示q = 4的RR調(diào)度算法 /data2.txt 表示q = 1的RR調(diào)度算法 in Data n;in Dataq;for (int i=0;in;i+)in DataRRarrayi. name;for (i=0;i n ;i+)in DataRRarrayi.ArrivalTime;for (i=0;i n ;i+)in DataRRarrayi.ServiceTime;/用戶輸入模式cout* *n;coutvv請輸入時間片q :;cinq;coutvv請按到達時間的順序依次輸入進程名:e ndl;fo
13、r (i=0;i RRarrayi. name;coutvv請從小到大輸入進程到達時間:e ndl;for (i=0;i RRarrayi.ArrivalTime;coutvv請按到達時間的順序依次輸入進程服務(wù)時間: RRarrayi.ServiceTime; coutvv* *vve ndl;/輸出用戶所輸入的信息coutvvThe in formatio n of processes is the follow in g:vve ndl;coutvvsetw(10)vv 進程名vv;coutvvsetw(10)vv 到達時間vv;coutvvsetw(10)vv服務(wù)時間vv vvendl;
14、for ( i=0;i vn ;i+)coutsetw(10)vvRR;coutvsetw(10)vvRRarrayi.ArrivalTimev;coutvsetw(10)vvRRarrayi.ServiceTimev e ndl;cout*=q)Curre ntTime = q;elseCurren tTime = RRarray0.ServiceTime;while(!RRqueue.empty()for(int j=i;j=RRarrayj.ArrivalTime)RRqueue.push(RRarrayj);i+;if (RRqueue.fron t().Serv
15、iceTimeq)tempTime = RRqueue.fro nt().ServiceTime;elsetempTime = q;RRqueue.fro nt().ServiceTime-= q; /進程每執(zhí)行一次,就將其服務(wù)時間-q/將隊首進程的名稱放入數(shù)組中processMome ntprocessMome ntPoi nt = RRqueue.fro nt( ).n ame;processMome ntPo in t+;processTimefi nalProcessNumber = tempTime;fin alProcessNumber+;if (RRqueue.fro nt().
16、ServiceTime = 0) /把執(zhí)行完的進程退出隊列/RRqueue.fro nt().Fi nishedTime = Curre ntTime;RRqueue.pop(); /如果進程的服務(wù)時間小于等于,即該進程已經(jīng)服務(wù)完了,將其退棧else/將隊首移到隊尾RRqueue.push(RRqueue.fro nt();RRqueue.pop();Curre ntTime += tempTime;/進程輸出處理每個時間段對應(yīng)的執(zhí)行的進程coutvv各進程的執(zhí)行時刻信息: vvsetw(2)vvprocessTime0vv 時刻;processTimefi nalProcessNumber=
17、O;int time = processTime0;int count = 0;for (i=0;ifi nalProcessNumber;i+)count = 0;coutsetw(3)vvprocessMome ntivsetw(3)ve ndl;while(RRarrayco un t. name!=processMome nti & countvn)coun t+;RRarrayco un t.Fi nishedTime = time;if (ifi nalProcessNumber - 1)coutsetw(3)time時刻 setw(2)timeprocessTimei+1時刻se
18、tw(3);time += processTimei+1; coute ndl;/周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間、平均周轉(zhuǎn)時間、帶權(quán)平均周轉(zhuǎn)時間的計算/1. 周轉(zhuǎn)時間=完成時間-到達時間2.帶權(quán)周轉(zhuǎn)時間=周轉(zhuǎn)時間/服務(wù)時間for ( i=0;i n ;i+)RRarrayi.WholeTime=RRarrayi.F ini shedTimeRRarrayi.ArrivalTime;RRarrayi.WeightWholeTime (double)RRarrayi.WholeTime/RRarrayi.ServiceTime;double x=0,y=0;for (i=0;i n ;i+)x += RRarrayi.WholeTime;y += RRarrayi.WeightWho
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年高中歷史第三章北魏孝文帝改革第三節(jié)孝文帝改革的歷史作用學案北師大版選修1
- 2024-2025學年新教材高中數(shù)學第十章概率10.1.1有限樣本空間與隨機事件10.1.2事件的關(guān)系和運算應(yīng)用案鞏固提升新人教A版必修第二冊
- 給學校的申請書
- 老年人貧困申請書范文
- 2025年度云計算平臺數(shù)據(jù)存儲與傳輸合同
- 2025年度外墻保溫及門窗改造工程環(huán)保監(jiān)測合同
- 2025年度智能網(wǎng)聯(lián)汽車通信技術(shù)合作開發(fā)合同范本
- 食品生產(chǎn)申請書
- 2025年度創(chuàng)意展廳租賃合同范本
- 2025年度建筑工地施工項目管理團隊勞動合同模板
- 《麻風病防治知識》課件
- 經(jīng)典誦讀演講稿6篇
- 鄉(xiāng)村醫(yī)生返聘協(xié)議書
- 2024機械買賣協(xié)議
- 當代世界經(jīng)濟與政治 第八版 課件 第四章 發(fā)展中國家的經(jīng)濟與政治
- 2024-2030年中國汽車安全氣囊行業(yè)發(fā)展形勢分析及投資規(guī)劃分析報告
- DZ∕T 0289-2015 區(qū)域生態(tài)地球化學評價規(guī)范(正式版)
- 譯林版六年級下冊英語Unit-1《The-lion-and-the-mouse》教學課件
- 睡眠中心管理系統(tǒng)技術(shù)要求
- 少兒美術(shù)教育知識講座
- 2023年12月東莞市樟木頭鎮(zhèn)下屬事業(yè)單位2024年公開招考4名特聘工程師筆試歷年高頻考題(難、易錯點薈萃)答案帶詳解附后
評論
0/150
提交評論