試驗(yàn)一單處理器調(diào)度算法的實(shí)現(xiàn)_第1頁(yè)
試驗(yàn)一單處理器調(diào)度算法的實(shí)現(xiàn)_第2頁(yè)
試驗(yàn)一單處理器調(diào)度算法的實(shí)現(xiàn)_第3頁(yè)
試驗(yàn)一單處理器調(diào)度算法的實(shí)現(xiàn)_第4頁(yè)
試驗(yàn)一單處理器調(diào)度算法的實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)一 單處理器調(diào)度 算法的實(shí)現(xiàn) 班級(jí): 計(jì)算機(jī) 04-1 班 學(xué)號(hào): 04034040112 姓名: 汀芷約 成績(jī): 日期: 2006-11-02 實(shí)驗(yàn)一 單處理器調(diào)度算法的實(shí)現(xiàn) 一、實(shí)驗(yàn)?zāi)康?在多道程序或多任務(wù)系統(tǒng)中, 系統(tǒng)同時(shí)處于就緒態(tài)的進(jìn)程有若干個(gè)。 為了使 系統(tǒng)中的各進(jìn)程能有條不紊地運(yùn)行,必須選擇某種調(diào)度策略,以選擇占用處理 機(jī)。要求學(xué)生設(shè)計(jì)一個(gè)模擬單處理機(jī)調(diào)度的算法,以鞏固和加深處理機(jī)調(diào)度的 概念。 二、實(shí)驗(yàn)內(nèi)容 設(shè)計(jì)一個(gè)按時(shí)間片輪轉(zhuǎn)法調(diào)度的算法。 提示: 1、假設(shè)系統(tǒng)有 5 個(gè)進(jìn)程,每個(gè)進(jìn)程用一個(gè)進(jìn)程控制塊PCB 來(lái)代表。 PCB 的格式如圖所示。其中,進(jìn)程名即是進(jìn)程標(biāo)識(shí)。 鏈接

2、指針:指出下一個(gè)到達(dá)進(jìn)程的進(jìn)程控制塊首地址。按照進(jìn)程到達(dá)的順 序排隊(duì)。系統(tǒng)設(shè)置一個(gè)隊(duì)頭和隊(duì)尾指針?lè)謩e指向第一個(gè)和最后一個(gè)進(jìn)程。新生 成的進(jìn)程放隊(duì)尾。 2、為每個(gè)進(jìn)程任意確定一個(gè)要求運(yùn)行時(shí)間和到達(dá)時(shí)間。 3、按照進(jìn)程到達(dá)的先后順序排成一個(gè)循環(huán)隊(duì)列。 再設(shè)一個(gè)隊(duì)首指針指向第 一個(gè)到達(dá)進(jìn)程的首地址。 4、執(zhí)行處理機(jī)調(diào)度時(shí), 開(kāi)始選擇隊(duì)首的第一個(gè)進(jìn)程運(yùn)行。 另外再設(shè)一個(gè)當(dāng) 前運(yùn)行進(jìn)程指針,指向當(dāng)前正運(yùn)行的進(jìn)程。 5、由于本實(shí)驗(yàn)是模擬實(shí)驗(yàn), 所以對(duì)被選中進(jìn)程并不實(shí)際啟動(dòng)運(yùn)行, 而是執(zhí) 行:一是估計(jì)運(yùn)行時(shí)間減 1;二是輸出當(dāng)前運(yùn)行進(jìn)程的名字。用這兩個(gè)操作來(lái)模 擬進(jìn)程的一次執(zhí)行。 6、進(jìn)程運(yùn)行一次后, 以后

3、的調(diào)度則將當(dāng)前指針依次下移一個(gè)位置, 指向下 一個(gè)進(jìn)程,即調(diào)整當(dāng)前運(yùn)行指針指向該進(jìn)程的鏈接指針?biāo)高M(jìn)程,以指示應(yīng)運(yùn) 行進(jìn)程。同時(shí)還應(yīng)該判斷該進(jìn)程的剩余運(yùn)行是否為0。若不為 0,則等待下一輪 的運(yùn)行; 若該進(jìn)程的剩余時(shí)間為 0,則將該進(jìn)程的狀態(tài)置為 C,并退出循環(huán)隊(duì)列。 7、若就緒隊(duì)列不空,則重復(fù)上述的( 5)和( 6)步驟直到所有進(jìn)程都運(yùn)行 為止。 8、在所設(shè)計(jì)的調(diào)度程序中, 應(yīng)包含顯示或打印語(yǔ)句。 以便顯示或打印每次 選中進(jìn)程的名稱(chēng)及運(yùn)行一次后隊(duì)列的變化情況。 三、實(shí)驗(yàn)說(shuō)明 1、 程序中使用的數(shù)據(jù)結(jié)構(gòu)及符號(hào)說(shuō)明: 數(shù)據(jù)結(jié)構(gòu):數(shù)組 data 符號(hào)說(shuō)明: 每個(gè)進(jìn)程的狀態(tài)是就緒 W( Wait )

4、、運(yùn)行 R( Run)、或完成 C( Complete ) 三種狀態(tài)之一。 2、程序流程圖: 四、實(shí)驗(yàn)源程序 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ShiJianPianDiaoDu / 調(diào)度算法 static void diaoDuSuanFa(Object data) int count = 0, i1 = 0; Object t; for (int i = 0; i data.length; i+) i1 += (I

5、nteger) datai2; for (int j = 0; j i1; j+) if (data03 != C) t = data0; data02 = (Integer) data02 - 1; if (Integer) data02 = 0) data03 = C; for (int i = 0; i data.length - 1; i+) datai = datai + 1; datadata.length - 1 = t; println(data); System.out.println(); count+; else for (int i = 0; i data.length

6、 - 1 - count; i+) datai = datai + 1; datadata.length - 1 - count = t; println(data); System.out.println(); static void paiXu(Object data)/ 排序 Object t; for (int i = 0; i data.length - 1; i+) for (int j = 0; j (Integer) dataj + 11) t = dataj; dataj = dataj + 1; dataj + 1 = t; static void println(Obje

7、ct data) / 打印 for (int i = 0; i data.length; i+) System.out.println( + datai0 + t + datai1 + t + datai2 + t + datai3); public static void main(String args) int n = 0, count = 1; String s; System.out.println( 時(shí)間片為 1); System.out.print( 輸入進(jìn)程數(shù) :); try BufferedReader br = new BufferedReader(new InputStr

8、eamReader( System.in); s = br.readLine(); n = Integer.parseInt(s); catch (IOException e) /dataname,arrivetime,runtime,state Object data = new Objectn4; for (int i = 0; i n; i+) try System.out.print(請(qǐng)輸入第 + count + 個(gè)進(jìn)程的名字 :); BufferedReader br = new BufferedReader(new InputStreamReader( System.in); da

9、tai0 = br.readLine(); System.out.print( 到達(dá)時(shí)間 (s):); s = br.readLine(); datai1 = Integer.parseInt(s); System.out.print( 運(yùn)行時(shí)間 (s):); s = br.readLine(); datai2 = Integer.parseInt(s); catch (Exception e) datai3 = R; count+; paiXu(data); System.out.println(namet+arrivetimet+runtimet+state); diaoDuSuanFa(

溫馨提示

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

評(píng)論

0/150

提交評(píng)論