資源簡介
1、實驗目的
通過動態優先權算法的模擬加深對進程概念和進程調度過程的理解。
2、實驗內容
(1)用C語言來實現對N個進程采用動態優先算法的進程調度;
(2)每個用來標識進程的進程控制塊 PCB用結構來描述,包括以下字段:
進程標識符id
進程優先數priority,并規定優先數越大的進程,其優先權越高;
進程已占用的CPU時間cputime ;
進程還需占用的CPU時間alltime,當進程運行完畢時,alltime變為0;
進程的阻塞時間startblock,表示當進程再運行startblock個時間片后,進程將進入阻塞狀態;
進程被阻塞的時間blocktime,表示已阻塞的進程再等待blocktime個時間片后,將轉換成就緒態
進程狀態state;
隊列指針next,用來將PCB排成隊列
(3)優先數改變的原則:
進程在就緒隊列中呆一個時間片,優先數增加1
進程每運行一個時間片,優先數減3。
(4)假設在調度前,系統中有5個進程,它們的初始狀態如下:
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)為了清楚地觀察諸進程的調度過程,程序應將每個時間片內的進程的情況顯示出來,參照的具體格式如下:
代碼片段和文件信息
評論
共有 條評論