




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、鄭州輕工業(yè)學(xué)院實(shí) 驗(yàn) 報(bào) 告 實(shí)驗(yàn)名稱(chēng) 動(dòng)態(tài)優(yōu)先權(quán)進(jìn)程調(diào)度算法模擬 課程名稱(chēng) 計(jì)算機(jī)操作系統(tǒng) 專(zhuān)業(yè)班級(jí): 學(xué)生姓名: 學(xué) 號(hào): 成 績(jī):指導(dǎo)教師: 實(shí)驗(yàn)日期: 0 1鄭州輕工業(yè)學(xué)院 實(shí) 驗(yàn) 報(bào) 告一實(shí)驗(yàn)?zāi)康模和ㄟ^(guò)動(dòng)態(tài)優(yōu)先權(quán)算法的模擬加深對(duì)進(jìn)程概念和進(jìn)程調(diào)度過(guò)程的理解。二實(shí)驗(yàn)內(nèi)容:(1)用C語(yǔ)言(或其它語(yǔ)言,如Java)實(shí)現(xiàn)對(duì)N個(gè)進(jìn)程采用某種進(jìn)程調(diào)度算法(如動(dòng)態(tài)優(yōu)先權(quán)調(diào)度)的調(diào)度。(2)每個(gè)用來(lái)標(biāo)識(shí)進(jìn)程的進(jìn)程控制塊PCB可用結(jié)構(gòu)來(lái)描述,包括以下字段:² 進(jìn)程標(biāo)識(shí)數(shù)ID。² 進(jìn)程優(yōu)先數(shù)PRIORITY,并規(guī)定優(yōu)先數(shù)越大的進(jìn)程,其優(yōu)先權(quán)越高。² 進(jìn)程已占用CPU時(shí)間CP
2、UTIME。² 進(jìn)程還需占用的CPU時(shí)間ALLTIME。當(dāng)進(jìn)程運(yùn)行完畢時(shí),ALLTIME變?yōu)?。² 進(jìn)程的阻塞時(shí)間STARTBLOCK,表示當(dāng)進(jìn)程再運(yùn)行STARTBLOCK個(gè)時(shí)間片后,進(jìn)程將進(jìn)入阻塞狀態(tài)。² 進(jìn)程被阻塞的時(shí)間BLOCKTIME,表示已阻塞的進(jìn)程再等待BLOCKTIME個(gè)時(shí)間片后,將轉(zhuǎn)換成就緒狀態(tài)。² 進(jìn)程狀態(tài)STATE。² 隊(duì)列指針NEXT,用來(lái)將PCB排成隊(duì)列。(3)優(yōu)先數(shù)改變的原則:² 進(jìn)程在就緒隊(duì)列中呆一個(gè)時(shí)間片,優(yōu)先數(shù)增加1。² 進(jìn)程每運(yùn)行一個(gè)時(shí)間片,優(yōu)先數(shù)減3。(4)為了清楚地觀察每個(gè)進(jìn)程的調(diào)度過(guò)程
3、,程序應(yīng)將每個(gè)時(shí)間片內(nèi)的進(jìn)程的情況顯示出來(lái),包括正在運(yùn)行的進(jìn)程,處于就緒隊(duì)列中的進(jìn)程和處于阻塞隊(duì)列中的進(jìn)程。(5)分析程序運(yùn)行的結(jié)果,談一下自己的認(rèn)識(shí)。三、設(shè)計(jì)思路和方法通過(guò)VC+程序模擬動(dòng)態(tài)優(yōu)先權(quán)程序調(diào)度算法,主要思路和方法就是,通過(guò)結(jié)構(gòu)體模擬計(jì)算機(jī)的控制模組,構(gòu)造一個(gè)PCB結(jié)構(gòu)體即進(jìn)程控制塊結(jié)構(gòu)體,用來(lái)記錄當(dāng)前進(jìn)程的的相關(guān)狀態(tài)信息,包括進(jìn)程標(biāo)識(shí)符、處理機(jī)狀態(tài)、進(jìn)程調(diào)度信息、進(jìn)程控制信息。并通過(guò)C+語(yǔ)言模擬計(jì)算機(jī)的相關(guān)調(diào)度算法,對(duì)構(gòu)建的PCB進(jìn)程進(jìn)行模擬調(diào)度和運(yùn)行,從而實(shí)現(xiàn)用計(jì)算機(jī)對(duì)進(jìn)程的調(diào)度過(guò)程進(jìn)行過(guò)程仿真。四、數(shù)據(jù)結(jié)構(gòu)和算法數(shù)據(jù)結(jié)構(gòu):1. 包含PCB信息的結(jié)構(gòu)體2. 包含進(jìn)程信息的順序表
4、結(jié)構(gòu)算法: 優(yōu)先權(quán)=(等待時(shí)間+要求服務(wù)時(shí)間)/要求服務(wù)時(shí)間 Rp=(等待時(shí)間+要求服務(wù)時(shí)間)/要求服務(wù)時(shí)間=相應(yīng)時(shí)間/要求服務(wù)時(shí)間系統(tǒng)將所有就緒隊(duì)列按優(yōu)先級(jí)高低排成一個(gè)隊(duì)列,每次調(diào)度時(shí),將CPU分配給優(yōu)先級(jí)最高的進(jìn)程,并令其執(zhí)行一個(gè)時(shí)間片,而后中斷,尋找并運(yùn)行下一個(gè)優(yōu)先級(jí)最高的進(jìn)程。而所有進(jìn)程的優(yōu)先權(quán)在隨進(jìn)程的推進(jìn)或隨其等待時(shí)間的增加而增加,而被調(diào)度之后的程序則降低一定的優(yōu)先級(jí),從而使所有進(jìn)程都有運(yùn)行的機(jī)會(huì),從而保證系統(tǒng)能在給定的時(shí)間內(nèi)響應(yīng)所有用戶(hù)的請(qǐng)求。五程序代碼和輸出1 程序代碼如下#include "iostream.h"#include "windows
5、.h"/#define N 3typedef structint ID;int PRIORITY;int CPUTIME;int ALLTIME;int STARTBLOCK;int BLOCKTIME;int STATE;/0-運(yùn)行 1-阻塞 2-就緒 3-結(jié)束 4-未到達(dá)int REACH;int TIME;PROCESS;void textcolor (int color) SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), color );void main()int i,time,max,l,l1,time1
6、,flag=0,total=0,N,server10,sum=0;PROCESS pro10;textcolor(13);cout<<"注意:本程序中狀態(tài)代表如下"<<endl<<"0-運(yùn)行 1-阻塞 2-就緒 3-結(jié)束 4-未到達(dá)"<<endl<<endl;textcolor(15);cout<<"請(qǐng)輸入進(jìn)程數(shù):"cin>>N;cout<<"請(qǐng)?jiān)O(shè)置時(shí)間片長(zhǎng)度:"cin>>time;cout<<&
7、quot;請(qǐng)輸入各進(jìn)程初始狀態(tài):"<<endl;cout<<"ID PRIORITY REACH ALLTIME STARTBLOCK BLOCKTIME"<<endl;for(i=0;i<N;i+)proi.CPUTIME=0;proi.TIME=0;cin>>proi.ID>>proi.PRIORITY>>proi.REACH;cin>>proi.ALLTIME>>proi.STARTBLOCK>>proi.BLOCKTIME;serveri=pr
8、oi.ALLTIME;if(proi.REACH=0) proi.STATE=0;else proi.STATE=4;docout<<endl<<"當(dāng)前時(shí)刻為:"<<total;textcolor(12);cout<<endl<<"=各進(jìn)程狀態(tài)為="<<endl;textcolor(15);cout<<"ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE"<<endl;for(i=0
9、;i<N;i+)cout<<proi.ID<<" "<<proi.PRIORITY<<" "<<proi.CPUTIME<<" "cout<<proi.ALLTIME<<" "<<proi.STARTBLOCK<<" "<<proi.BLOCKTIME<<" "<<proi.STATE;cout<<end
10、l;total+=time;for(i=0;i<N;i+)if(proi.STATE=4&&proi.REACH<total)proi.STATE=1;for(i=0;i<N;i+)time1=proi.ALLTIME;if(proi.STATE=0)if(proi.ALLTIME<=time)/proi.CPUTIME+=time1;proi.ALLTIME=0;proi.STATE=3;proi.TIME=total-time+time1;else/proi.CPUTIME+=time;proi.ALLTIME-=time;proi.STARTBLO
11、CK-;if(proi.STARTBLOCK=0)proi.STATE=1;proi.BLOCKTIME=time1;proi.STARTBLOCK=time1;proi.PRIORITY-=3;proi.TIME=total;if(proi.STATE=1)proi.BLOCKTIME-;if(proi.BLOCKTIME=0) proi.STATE=2;proi.TIME=total;if(proi.STATE=2)/proi.CPUTIME+=time;proi.PRIORITY+;proi.TIME=total;max=-100;l1=-1;l=-1;for(i=0;i<N;i+
12、)if(proi.PRIORITY>max&&(proi.STATE=0|proi.STATE=2)l=i;max=proi.PRIORITY;if(proi.STATE=0) l1=i;if(l!=-1&&l!=l1) prol.STATE=0;if(l1!=-1) prol1.STATE=2;flag=0;for(i=0;i<N;i+)if(proi.STATE!=3)flag=1;break;if(flag=0) break;while(1);cout<<endl<<"當(dāng)前時(shí)刻:"<<to
13、tal;textcolor(12);cout<<endl<<"=各進(jìn)程狀態(tài)為="<<endl;textcolor(15);cout<<"ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE"<<endl;for(i=0;i<N;i+)cout<<proi.ID<<" "<<proi.PRIORITY<<" "<<proi.CPUTIME
14、<<" "cout<<proi.ALLTIME<<" "<<proi.STARTBLOCK<<" "<<proi.BLOCKTIME<<" "<<proi.STATE;cout<<endl;cout<<endl<<"各進(jìn)程運(yùn)行結(jié)束!"<<endl;cout<<"進(jìn)程號(hào) 到達(dá)時(shí)間 結(jié)束時(shí)間 周轉(zhuǎn)時(shí)間 帶權(quán)周轉(zhuǎn)時(shí)間"<&
15、lt;endl;textcolor(10);for(i=0;i<N;i+)cout<<" "<<proi.ID<<" "<<proi.REACH<<" "<<proi.TIME<<" "<<proi.TIME-proi.REACH<<" "<<(float)(proi.TIME-proi.REACH)/serveri<<endl;sum+=proi.TIME-
16、proi.REACH;cout<<"平均周轉(zhuǎn)時(shí)間為:"<<(float)sum/N<<endl;textcolor(15);2輸入注意:本程序中狀態(tài)代表如下0-運(yùn)行 1-阻塞 2-就緒 3-結(jié)束 4-未到達(dá)請(qǐng)輸入進(jìn)程數(shù):5請(qǐng)?jiān)O(shè)置時(shí)間片長(zhǎng)度:4請(qǐng)輸入各進(jìn)程初始狀態(tài):ID PRIORITY REACH ALLTIME STARTBLOCK BLOCKTIME1 2 3 0 1 42 6 4 0 3 12 0 3 4 5 22 1 2 4 3 41 5 2 4 5 33輸出結(jié)果當(dāng)前時(shí)刻為:0=各進(jìn)程狀態(tài)為=ID PRIORITY CPUTIME
17、 ALLTIME STARTBLOCK BLOCKTIME STATE1 2 0 0 1 4 42 6 0 0 3 1 42 0 0 4 5 2 42 1 0 4 3 4 41 5 0 4 5 3 4當(dāng)前時(shí)刻為:4=各進(jìn)程狀態(tài)為=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 2 0 0 1 3 12 6 0 0 3 1 42 0 0 4 5 1 12 1 0 4 3 3 11 5 0 4 5 2 1當(dāng)前時(shí)刻為:8=各進(jìn)程狀態(tài)為=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME ST
18、ATE1 2 0 0 1 2 12 7 0 0 3 0 02 1 0 4 5 0 22 1 0 4 3 2 11 5 0 4 5 1 1當(dāng)前時(shí)刻為:12=各進(jìn)程狀態(tài)為=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 2 0 0 1 1 12 7 0 0 3 0 32 2 0 4 5 0 22 1 0 4 3 1 11 6 0 4 5 0 0當(dāng)前時(shí)刻為:16=各進(jìn)程狀態(tài)為=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 3 0 0 1 0 02 7 0 0 3 0 32
19、 3 0 4 5 0 22 2 0 4 3 0 21 6 0 0 5 0 3當(dāng)前時(shí)刻為:20=各進(jìn)程狀態(tài)為=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 3 0 0 1 0 32 7 0 0 3 0 32 4 0 4 5 0 02 3 0 4 3 0 21 6 0 0 5 0 3當(dāng)前時(shí)刻為:24=各進(jìn)程狀態(tài)為=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 3 0 0 1 0 32 7 0 0 3 0 32 4 0 0 5 0 32 4 0 4 3 0 01 6 0 0 5 0 3當(dāng)前時(shí)刻:28=各
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 修橋合同范本
- 2025年安徽道路運(yùn)輸從業(yè)資格證考試內(nèi)容是什么
- 包工料水電裝修合同范本
- 公司退休返聘合同范例
- 醫(yī)院人事勞務(wù)合同范本
- 全套合同范本目錄
- 傭金合同范本道客
- 全職抖音主播合同范本
- 農(nóng)村改水電合同范本
- 出租生態(tài)大棚合同范本
- 2025年湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)參考答案
- DB37-T4817-2025 瀝青路面就地冷再生技術(shù)規(guī)范
- 酒店長(zhǎng)包房租賃協(xié)議書(shū)范本
- 2025年幾內(nèi)亞水泥廠項(xiàng)目投資可行性報(bào)告
- 口腔門(mén)診分診流程
- 提高設(shè)備基礎(chǔ)預(yù)埋螺栓一次安裝合格率
- 2025年春新外研版(三起)英語(yǔ)三年級(jí)下冊(cè)課件 Unit2第1課時(shí)Startup
- 2025年上半年天津市寧河區(qū)事業(yè)單位招聘12人重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解-1
- 2024年科技節(jié)小學(xué)科普知識(shí)競(jìng)賽題及答案(共100題)
- 心肺復(fù)蘇課件
- 氧氣管道吹掃、打壓方案
評(píng)論
0/150
提交評(píng)論