




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、實驗二 間片輪轉RR進程調度算法1、 實驗目的通過這次實驗,加深對進程概念的理解,進一步掌握進程狀態(tài)的轉變、進程調度的策略及對系統(tǒng)性能的評價方法。2、 試驗內(nèi)容問題描述:設計程序模擬進程的時間片輪轉RR調度過程。假設有n個進程分別在T1, ,Tn時刻到達系統(tǒng),它們需要的服務時間分別為S1, ,Sn。分別利用不同的時間片大小q,采用時間片輪轉RR進程調度算法進行調度,計算每個進程的完成時間、周轉時間和帶權周轉時間,并且統(tǒng)計n個進程的平均周轉時間和平均帶權周轉時間。3、 程序要求:1)進程個數(shù)n;每個進程的到達時間T1, ,Tn和服務時間S1, ,Sn;輸入時間片大小q。2)要求時間片輪轉法RR調
2、度進程運行,計算每個進程的周轉時間和帶權周轉時間,并且計算所有進程的平均周轉時間和帶權平均周轉時間;3)輸出:要求模擬整個調度過程,輸出每個時刻的進程運行狀態(tài),如“時刻3:進程B開始運行”等等;4)輸出:要求輸出計算出來的每個進程的周轉時間、帶權周轉時間、所有進程的平均周轉時間以及帶權平均周轉時間。4、 需求分析(1) 輸入的形式和輸入值的范圍時間片真實進程數(shù)各進程的到達時間各進程的服務時間(2) 輸出的形式模擬整個調度過程、周轉時間、帶權周轉時間、所有進程的平均周轉時間以及帶權平均周轉時間。(3)測試用例 作業(yè)情況時間片進程名ABCDE平均到達時間01234服務時間43524RRq=1完成時
3、間1210181117周轉時間1291681311.6帶權周轉時間333.243.253.29RRq=4完成時間47181317周轉時間461610139.8帶權周轉時間123.253.252.895、 調試分析由于自己自編寫代碼方面與他人有一定的差距,因此在做實驗的過程中我在網(wǎng)上搜了很多相關的資料,了解實現(xiàn)該算法的原理及各部分實現(xiàn)的代碼,同時參考了幾個別人寫好的源代碼,然后自己在理解的基礎上不斷的根據(jù)要求修改寫程序,不過其中碰見的很多的問題。我已經(jīng)自己調了好多錯誤,在一遍遍的調試和修改中,發(fā)現(xiàn)自己的經(jīng)驗在快速增長,這個感覺真的很不錯。然而,實驗的運行結果還不是很完美,每個進程在最后一個時間片
4、的運行過程中,進程列表的更新總是修改錯誤。不過在在本次試驗中學到了不少東西,一點點的在進步。6、 測試結果輸入時間片,進程數(shù),進程到達時間,服務時間輸出輸入時間片,進程數(shù),進程到達時間,服務時間輸出7、 附錄(java)package experiment;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.util.Scanner;public class B_RR / 聲明變量/ 時間片public static
5、int q = 0;/ 允許的最大進程數(shù)public static int MaxNum = 100;/ 真正的進程數(shù)public static int realNum;/ order數(shù)組的一個下標public static int number;/ 當前時間public static int NowTime;/ 各進程的達到時間public static int ArrivalTime = new intMaxNum;/ 各進程的服務時間public static int ServiceTime = new intMaxNum;/ 各進程的服務時間(用于記錄進程服務時間隨時間片輪轉減少的過程
6、)public static int PServiceTime = new intMaxNum;/ 各進程的完成時間public static int FinishTime = new intMaxNum;/ 各進程的周轉時間public static int WholeTime = new intMaxNum;/ 進程調度隊列(存放的是各個進程的數(shù)字代號,如進程A數(shù)字代號為1)public static int order = new intMaxNum;/ 各進程的帶權周轉時間public static double WeightWholeTime = new doubleMaxNum;/
7、 平均周轉時間、平均帶權周轉時間public static double AverageWT, AverageWWT;/ 周轉時間總和public static int SumWT = 0;/ 帶權周轉時間總和public static double SumWWT = 0;/ 進程是否已經(jīng)結束的標志public static boolean Finished = new booleanMaxNum;public static Scanner stdin;public static void main(String args) throws FileNotFoundException / 從文件
8、中輸入數(shù)據(jù)BufferedInputStream in = new BufferedInputStream(new FileInputStream("./file/02");System.setIn(in);stdin = new Scanner(System.in);q = stdin.nextInt(); / 時間片qrealNum = stdin.nextInt(); / 真實進程數(shù)for (int i = 0; i < realNum; i+) / 各進程的服務時間ArrivalTimei = stdin.nextInt();for (int j = 0; j
9、 < realNum; j+) / 各進程的服務時間ServiceTimej = stdin.nextInt();PServiceTimej = ServiceTimej; /用于記錄進程服務時間隨時間片輪轉減少的過程Finishedj = false;stdin.close();int all_add = 1; /就緒隊列中的進程個數(shù)order0 = 0; /進程調度隊列(存放的是各個進程的數(shù)字代號,如進程A數(shù)字代號為1)number = 1;NowTime = 0; /現(xiàn)在時間while (order0 != 100) /order0為100,是認為規(guī)定進程調度結束的標志/ 調度程序
10、char w = 'A'System.out.println("時刻" + NowTime + ":進程" + (char)(w + order0) + "開始運行;");if (PServiceTimeorder0 > q) /進程還未完成PServiceTimeorder0 = PServiceTimeorder0 - q; /對應的進程的服務時間減去一個時間片NowTime += q; /現(xiàn)在時刻增加一個時間片System.out.println("時刻" + NowTime + &qu
11、ot;:進程" + (char)(w + order0) + "停止運行,加入就緒序列尾;"); else /進程剩一個時間片后結束NowTime += PServiceTimeorder0; /現(xiàn)在時間增加一個時間片PServiceTimeorder0 = 0; /對應進程的服務時間歸零System.out.println("時刻" + NowTime + ":進程" + (char)(w + order0) + "運行結束;");FinishTimeorder0 = NowTime;WholeTime
12、order0 = NowTime - ArrivalTimeorder0;WeightWholeTimeorder0 = 1.0 * WholeTimeorder0 / ServiceTimeorder0;/ 將到達的程序加入序列尾if (all_add < realNum) for (int i = 1; i < realNum; i+) if (NowTime >= ArrivalTimei && Finishedi = false) /判斷該進程是否已經(jīng)在就緒隊列中ordernumber+ = i;all_add+; Finishedi = true;/
13、 將序列首程序調到序列尾int temp = order0;for (int i = 0; i < number - 1; i+) /將order中的每個數(shù)前移一位orderi = orderi + 1;if (PServiceTimetemp = 0) /進程已將全部調度結束,通過將order的第一個數(shù)標記為100,來結束進程調度order-number = 100; else /進程還未調度結束ordernumber - 1 = temp;double all = 0, all1 = 0;for (int i = 0; i < realNum; i+) / 計算總周轉時間和總帶權周轉時間all += WholeTimei;all1 += WeightWholeTimei;System.out.println("n進程名t到達時間t服務時間t完成時間t周轉時間t帶權周轉時間");for (int i = 0; i < realNum; i+) System.out.println(char)(i + 'A') + "t" + ArrivalTimei + "t"+ ServiceTimei + "t" + FinishTimei + &quo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 把握考試動向2025年信息系統(tǒng)項目管理師試題及答案
- 公共政策評估的關鍵指標試題及答案
- 2024年年4K超高清資金籌措計劃書代可行性研究報告
- 軟件設計師考試多層面提升方案試題及答案
- 政治輿論對決策的影響軌跡試題及答案
- 影響公共衛(wèi)生政策的政治因素分析試題及答案
- 更有效地學習西方政治考試試題及答案
- 軟件設計師考試中的時間分配技巧試題及答案
- 西方國家政策的社會影響分析試題及答案
- 社會心理學在公共政策分析中的應用試題及答案
- 光伏施工安全培訓
- 國企崗位筆試題目及答案
- 社工招錄考試試題及答案
- 餐廳廚房5S管理
- 變配電運行值班員(220kV及以下)高級技師-機考題庫(導出版)
- DB11-T 2398-2025 水利工程巡視檢查作業(yè)規(guī)范
- 2025春季學期國開電大本科《人文英語3》一平臺在線形考綜合測試(形考任務)試題及答案
- 《人工智能安全導論》 課件 第七章 人工智能在聯(lián)邦學習領域
- 員工電動車管理制度
- 百葉窗施工工藝方案 組織設計
- 授權審批管理制度
評論
0/150
提交評論