版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)3 高(動態(tài))優(yōu)先權(quán)優(yōu)先的進(jìn)程調(diào)度算法模擬1. 實(shí)驗(yàn)?zāi)康耐ㄟ^動態(tài)優(yōu)先權(quán)算法的模擬加深對進(jìn)程概念和進(jìn)程調(diào)度過程的理解。2. 實(shí)驗(yàn)環(huán)境裝有操作系統(tǒng)Windows XP和開發(fā)工具VC+6.0,內(nèi)存在256M以上的微機(jī);或者:裝有Linux(Fedora 7)操作系統(tǒng)和gcc編譯器,內(nèi)存在256M以上的微機(jī)。3. 實(shí)驗(yàn)內(nèi)容(1) 用C語言來實(shí)現(xiàn)對N個(gè)進(jìn)程采用動態(tài)優(yōu)先權(quán)優(yōu)先算法的進(jìn)程調(diào)度。(2) 每個(gè)用來標(biāo)識進(jìn)程的進(jìn)程控制塊PCB用結(jié)構(gòu)來描述,包括以下字段:l 進(jìn)程標(biāo)識數(shù)ID;l 進(jìn)程優(yōu)先數(shù)PRIORITY,并規(guī)定優(yōu)先數(shù)越大的進(jìn)程,其優(yōu)先權(quán)越高;l 進(jìn)程已占用的CPU時(shí)間CPUTIME;l 進(jìn)程還需
2、占用的CPU時(shí)間NEEDTIME。當(dāng)進(jìn)程運(yùn)行完畢時(shí),NEEDTIME變?yōu)?;l 進(jìn)程的阻塞時(shí)間STARTBLOCK,表示當(dāng)進(jìn)程再運(yùn)行STARTBLOCK個(gè)時(shí)間片后,進(jìn)程將進(jìn)入阻塞狀態(tài);l 進(jìn)程被阻塞的時(shí)間BLOCKTIME,表示已阻塞的進(jìn)程再等待BLOCKTIME個(gè)時(shí)間片后,進(jìn)程將轉(zhuǎn)換成就緒狀態(tài);l 進(jìn)程狀態(tài)STATE;(READY, RUNNING, BLOCK, FINISH)l 隊(duì)列指針NEXT,用來將PCB排成隊(duì)列。(3) 優(yōu)先數(shù)改變的原則:l 進(jìn)程在就緒隊(duì)列中呆一個(gè)時(shí)間片,優(yōu)先數(shù)增加1;l 進(jìn)程每運(yùn)行一個(gè)時(shí)間片,優(yōu)先數(shù)減3。(4) 假設(shè)在調(diào)度前,系統(tǒng)中有5個(gè)進(jìn)程,它們的初始狀態(tài)如下:
3、ID01234PRIORITY93830290CPUTIME00000NEEDTIME33634STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEREADYREADYREADYREADY READY(5) 為了清楚地觀察進(jìn)程的調(diào)度過程,程序應(yīng)將每個(gè)時(shí)間片內(nèi)的進(jìn)程的情況顯示出來,參照的具體格式如下:RUNNING PROCESS: $id0READY QUEUE: $id1->$id2BLOCK QUEUE: $id3->$id4 FINISH QUEUE: $id0->$id1->$id2->$id3->$id4=ID PRIORI
4、TY CPUTIME NEEDTIME STATE STARTBLOCK BLOCKTIME0 XX XX XX XX XX XX1 XX XX XX XX XX XX2 XX XX XX XX XX XX3 XX XX XX XX XX XX4 XX XX XX XX XX XX=4. 實(shí)驗(yàn)要求(1) 將源程序(priority.c)和程序運(yùn)行結(jié)果寫入實(shí)驗(yàn)報(bào)告。(2) 將該算法執(zhí)行過程與高響應(yīng)比優(yōu)先調(diào)度算法的執(zhí)行過程進(jìn)行比較。#include <stdio.h> #include <iostream>using namespace std; int i; /循環(huán)值 i
5、nt j; /還在阻塞或就緒隊(duì)列中的進(jìn)程數(shù) int s; int m; /最大priority的id struct pcb int id; int p; /priority int cputime; int alltime; int startblock; int blocktime; int state; /0 表示ready 1表示end -1表示block ; struct pcb pro5= 0,9,0,3,2,3,0, 1,38,0,3,-1,0,0, 2,30,0,6,-1,0,0, 3,29,0,3,-1,0,0, 4,0,0,4,-1,0,0 ; int changestate
6、0() if(pro0.startblock=0) pro0.state=-1; pro0.startblock-; return 1; if(pro0.blocktime=0) pro0.state=0; return 1; if(pro0.state=0&&pro0.startblock!=-1) pro0.startblock-;return 1; if(pro0.state=-1&&pro0.blocktime!=0) pro0.blocktime-;return 1; int state0() changestate0(); s=pro0.p; if(
7、pro0.state=-1) s=-100; return s; int maxp()/求出最大priority state0(); int max=s; m=pro0.id; for(i=0;i<j;i+) if(proi+1.p>proi.p) max=proi+1.p; m=proi+1.id; return m; void change() maxp(); int x;/得到m現(xiàn)在的數(shù)組編號 for(i=0;i<j;i+) proi.p+; for(i=0;i<j;i+) if(proi.id=m) x=i; prox.cputime+; prox.p=prox
8、.p-4; prox.alltime-; if(prox.alltime=0) prox.state=1; void display() change(); cout<<"RUNNING PROG:"<<m<<endl; cout<<"=n" cout<<"ID " for(i=0;i<j;i+) cout.width(10); cout<<proi.id; cout<<endl<<"PRIORITY " for(
9、i=0;i<j;i+) cout.width(10); cout<<proi.p; cout<<endl<<"CPUTIME " for(i=0;i<j;i+) cout.width(10); cout<<proi.cputime; cout<<endl<<"ALLTIME " for(i=0;i<j;i+) cout.width(10); cout<<proi.alltime; cout<<endl<<"STARTBL
10、OCK" for(i=0;i<j;i+) cout.width(10); cout<<proi.startblock; cout<<endl<<"BLOCKTIME " for(i=0;i<j;i+) cout.width(10); cout<<proi.blocktime; cout<<endl<<"STATE " for(i=0;i<j;i+) cout.width(10); cout<<proi.state; cout<<en
11、dl; int main() j=5;/剛開始有5個(gè)進(jìn)程 while(j!=0) for(i=0;i<j;i+) if(proi.state=1) for(;i<j;i+) proi=proi+1; j=j-1; display(); getchar(); 運(yùn)行結(jié)果:RUNNING PROG:1=ID 0 1 &
12、#160; 2 3 4PRIORITY 10 35 31
13、160; 30 1CPUTIME 0 1 0 0
14、 0ALLTIME 3 2 6 3 4STARTBLOCK &
15、#160; 1 -1 -1 -1 -1BLOCKTIME 3
16、 0 0 0 0STATE 0 0&
17、#160; 0 0 0RUNNING PROG:1=ID 0 1
18、0; 2 3 4PRIORITY 11 32 32
19、; 31 2CPUTIME 0 2 0 0
20、60; 0ALLTIME 3 1 6 3 4STARTBLO
21、CK 0 -1 -1 -1 -1BLOCKTIME 3
22、60; 0 0 0 0STATE 0
23、 0 0 0 0RUNNING PROG:1=ID 0 1 &
24、#160; 2 3 4PRIORITY 12 29 33
25、160; 32 3CPUTIME 0 3 0 0
26、 0ALLTIME 3 0 6 3
27、4STARTBLOCK -1 -1 -1 -1 -1BLOCKTIME
28、3 0 0 0 0STATE -1 &
29、#160; 1 0 0 0RUNNING PROG:2=ID 0 2
30、160; 3 4PRIORITY 13 30 33 4CPUTIME
31、160; 0 1 0 0ALLTIME 3
32、60; 5 3 4STARTBLOCK -1 -1 -1 -1BLOCK
33、TIME 2 0 0 0STATE -1
34、0; 0 0 0RUNNING PROG:3=ID 0 2 3
35、; 4PRIORITY 14 31 30 5CPUTIME
36、0 1 1 0ALLTIME 3 5
37、 2 4STARTBLOCK -1 -1 -1 -1BLOCKTIME &
38、#160; 1 0 0 0STATE -1 0 &
39、#160; 0 0RUNNING PROG:2=ID 0 2 3 4PR
40、IORITY 15 28 31 6CPUTIME 0
41、0; 2 1 0ALLTIME 3 4 2
42、60; 4STARTBLOCK -1 -1 -1 -1BLOCKTIME 0
43、0; 0 0 0STATE -1 0 0
44、0; 0RUNNING PROG:3=ID 0 2 3 4PRIORITY
45、; 16 29 28 7CPUTIME 0 2 &
46、#160; 2 0ALLTIME 3 4 1 4STARTBLOCK
47、160; -1 -1 -1 -1BLOCKTIME 0 0 &
48、#160; 0 0STATE 0 0 0 0RU
49、NNING PROG:2=ID 0 2 3 4PRIORITY 17
50、160; 26 29 8CPUTIME 0 3 2
51、; 0ALLTIME 3 3 1 4STARTBLOCK -
52、1 -1 -1 -1BLOCKTIME 0 0
53、0 0STATE 0 0 0 0RUNNING PROG:3=ID
54、60; 0 2 3 4PRIORITY 18 27
55、; 26 9CPUTIME 0 3 3 0ALL
56、TIME 3 3 0 4STARTBLOCK -1
57、; -1 -1 -1BLOCKTIME 0 0 0
58、; 0STATE 0 0 1 0RUNNING PROG:2=ID 0&
59、#160; 2 4PRIORITY 19 24 10CPUTIME
60、60; 0 4 0ALLTIME 3 2 4STARTBLOCK
61、0; -1 -1 -1BLOCKTIME 0 0 0STATE
62、; 0 0 0RUNNING PROG:2=ID 0 2
63、160; 4PRIORITY 20 21 11CPUTIME 0 5
64、160; 0ALLTIME 3 1 4STARTBLOCK -1 -1 &
65、#160; -1BLOCKTIME 0 0 0STATE 0
66、 0 0RUNNING PROG:2=ID 0 2 4PRIORITY 21
67、0; 18 12CPUTIME 0 6 0ALLTIME
68、160; 3 0 4STARTBLOCK -1 -1 -1BLOCKTIME
69、0; 0 0 0STATE 0 1 0RUNNING PROG:0=ID
70、 0 4PRIORITY 18 13CPUTIME 1
71、60; 0ALLTIME 2 4STARTBLOCK -1 -1BLOCKTIME
72、0 0STATE 0 0RUNNING PROG:0=ID 0 4PRIORITY &
73、#160; 15 14CPUTIME 2 0ALLTIME 1
74、; 4STARTBLOCK -1 -1BLOCKTIME 0 0STATE 0 0RUNNING PROG:0=ID
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省揚(yáng)州市2024-2025學(xué)年高二(上)學(xué)業(yè)水平合格性模擬考試物理試卷(含答案)
- 河北省衡水市2024-2025學(xué)年高三上學(xué)期期末物理試題(無答案)
- 2022年高考物理大一輪總復(fù)習(xí)(江蘇專版-)題庫-第二章-相互作用-第2課時(shí)
- 安徽省合肥第四十六中學(xué)2024-2025學(xué)年九年級第一學(xué)期12月份月考語文試卷(含答案)
- 【KS5U原創(chuàng)】新課標(biāo)2021年高二物理暑假作業(yè)5《恒定電流二》
- 2021貴陽市高考英語閱讀、閱讀表達(dá)一輪自練題(5)-及答案
- 四年級數(shù)學(xué)(除數(shù)是兩位數(shù))計(jì)算題專項(xiàng)練習(xí)及答案
- 【全程復(fù)習(xí)方略】2021年春高中物理選修3-4-課時(shí)達(dá)標(biāo)·效果檢測-12.2-波的圖像
- 2022部編版四年級語文下冊全冊一課一練同步練習(xí)(有答案)+知識點(diǎn)歸納
- 2025年0096北京美欣科技有限公司
- GB/T 40417-2021電子特氣六氟丁二烯
- GB/T 3641-1983P3型鍍鋅金屬軟管
- GB/T 34281-2017全民健身活動中心分類配置要求
- GB/T 10183-2005橋式和門式起重機(jī)制造及軌道安裝公差
- 采購合同管理概述
- 旅游法實(shí)施細(xì)則
- 高等教育階段兒童文學(xué)專業(yè)知識講座課件
- 籃球比賽報(bào)名表范本
- 河北省滄州市藥品零售藥店企業(yè)藥房名單目錄
- 2022心理學(xué)課題論文開題報(bào)告范文
- 自行招用保安員單位備案申請材料
評論
0/150
提交評論