設(shè)計(jì)一個(gè)按優(yōu)先數(shù)調(diào)度算法實(shí)現(xiàn)處理器調(diào)度的程序。
[提示]:
(1) 假定系統(tǒng)有5個(gè)進(jìn)程,每個(gè)進(jìn)程用一個(gè)PCB來代表。PCB的格式為:
進(jìn)程名、指針、要求運(yùn)行時(shí)間、優(yōu)先數(shù)、狀態(tài)。
進(jìn)程名——P1~P5。
指針——按優(yōu)先數(shù)的大小把5個(gè)進(jìn)程連成隊(duì)列,用指針指出下一個(gè)進(jìn)程PCB的首地址。
要求運(yùn)行時(shí)間——假設(shè)進(jìn)程需要運(yùn)行的單位時(shí)間數(shù)。
優(yōu)先數(shù)——賦予進(jìn)程的優(yōu)先數(shù),調(diào)度時(shí)總是選取優(yōu)先數(shù)大的進(jìn)程先執(zhí)行。
狀態(tài)——假設(shè)兩種狀態(tài),就緒,用R表示,和結(jié)束,用E表示。初始狀態(tài)都為就緒狀態(tài)。
(2) 每次運(yùn)行之前,為每個(gè)進(jìn)程任意確定它的“優(yōu)先數(shù)”和“要求運(yùn)行時(shí)間”。
(3) 處理器總是選隊(duì)首進(jìn)程運(yùn)行。采用動(dòng)態(tài)改變優(yōu)先數(shù)的辦法,進(jìn)程每運(yùn)行1次,優(yōu)先數(shù)減1,要求運(yùn)行時(shí)間減1。
(4) 進(jìn)程運(yùn)行一次后,若要求運(yùn)行時(shí)間不等于0,則將它加入隊(duì)列,否則,將狀態(tài)改為“結(jié)束”,退出隊(duì)列。
(5) 若就緒隊(duì)列為空,結(jié)束,否則,重復(fù)(3)。
用c語言實(shí)現(xiàn)的模擬操作系統(tǒng)處理機(jī)調(diào)度過程的程序
標(biāo)簽:
優(yōu)先數(shù)
調(diào)度算法
處理器
調(diào)度
上傳時(shí)間:
2016-02-03
上傳用戶:龍飛艇