-
大小: 103KB文件類型: .doc金幣: 1下載: 0 次發(fā)布日期: 2021-05-20
- 語言: C/C++
- 標(biāo)簽: 動態(tài)優(yōu)先??進(jìn)程調(diào)度??VC++??
資源簡介
1、實驗?zāi)康?通過動態(tài)優(yōu)先權(quán)算法的模擬加深對進(jìn)程概念和進(jìn)程調(diào)度過程的理解。
2、實驗內(nèi)容
(1)用C語言來實現(xiàn)對N個進(jìn)程采用動態(tài)優(yōu)先算法的進(jìn)程調(diào)度;
(2)每個用來標(biāo)識進(jìn)程的進(jìn)程控制塊 PCB用結(jié)構(gòu)來描述,包括以下字段:
進(jìn)程標(biāo)識符id
進(jìn)程優(yōu)先數(shù)priority,并規(guī)定優(yōu)先數(shù)越大的進(jìn)程,其優(yōu)先權(quán)越高;
進(jìn)程已占用的CPU時間cputime ;
進(jìn)程還需占用的CPU時間alltime,當(dāng)進(jìn)程運行完畢時,alltime變?yōu)?;
進(jìn)程的阻塞時間startblock,表示當(dāng)進(jìn)程再運行startblock個時間片后,進(jìn)程將進(jìn)入阻塞狀態(tài);
進(jìn)程被阻塞的時間blocktime,表示已阻塞的進(jìn)程再等待blocktime個時間片后,將轉(zhuǎn)換成就緒態(tài)
進(jìn)程狀態(tài)state;
隊列指針next,用來將PCB排成隊列
(3)優(yōu)先數(shù)改變的原則:
進(jìn)程在就緒隊列中呆一個時間片,優(yōu)先數(shù)增加1
進(jìn)程每運行一個時間片,優(yōu)先數(shù)減3。
(4)假設(shè)在調(diào)度前,系統(tǒng)中有5個進(jìn)程,它們的初始狀態(tài)如下:
ID 0 1 2 3 4
PRIORITY 9 38 30 29 0
CPUTIME 0 0 0 0 0
ALLTIME 3 3 6 3 4
STARTBLOCK 2 -1 -1 -1 -1
BLOCKTIME 3 0 0 0 0
STATE READY READY READY READY READY
(5)為了清楚地觀察諸進(jìn)程的調(diào)度過程,程序應(yīng)將每個時間片內(nèi)的進(jìn)程的情況顯示出來,參照的具體格式如下:
代碼片段和文件信息
評論
共有 條評論