1設計題目:CPU調度(CPU調度算法的模擬實現)
具體內容:編寫算法,實現CPU調度算法FCFS、非搶占SJF、可搶占優先權調度、RR
針對模擬進程,利用CPU調度算法進行調度
進行算法評價,計算平均周轉時間和平均等待時間
要求:調度所需的進程參數由輸入產生
手工輸入
隨機數產生
輸出調度結果
輸出雞撣慣趕甙非軌石憨將算法評價指標
2設計題目:虛擬內存 (頁面置換算法的模擬實現)
具體內容:編寫算法,實現頁面置換算法FIFO、LRU
針對內存地址引用串,運行頁面置換算法進行頁面置換
要求:算法所需的引用串參數由輸入產生:可由手工輸入也可基於隨機數產生
輸出內存駐留的頁面集合
1.進程調度算法模塊
[問題描述]
1、進程調度算法:采用動態最高優先數優先的調度算法(即把處理機分配給優先數最高的進程)。
2、每個進程有壹個進程控制塊( PCB)表示。進程控制塊可以包含如下信息:
進程名---進程標示數 ID
優先數 PRIORITY 優先數越大優先權越高
到達時間---進程的到達時間為進程輸入的時間。、
進程還需要運行時間ALLTIME,進程運行完畢ALLTIME=0,
已用CPU時間----CPUTIME、
進程的阻塞時間STARTBLOCK-表示當進程在運行STARTBLOCK個時間片後,進程將進入阻塞狀態
進程的阻塞時間BLOCKTIME--表示當進程阻塞BLOCKTIME個時間片後,進程將進入就緒狀態
進程狀態—STATE
隊列指針NEXT 用來將PCB排成隊列。
3、調度原則:
進程的優先數及需要的運行時間可以事先人為地指定(也可以由隨機數產生)。進程的到達時間為進程輸入的時間。
進程的運行時間以時間片為單位進行計算。
進程在就緒隊列中待壹個時間片,優先數加1
每個進程的狀態可以是就緒 R(READY)、運行R(Run)阻塞B(BLOCK)、或完成F(Finish)四種狀態之壹。
就緒進程獲得 CPU後都只能運行壹個時間片。用已占用CPU時間加1來表示。
如果運行壹個時間片後,進程的已占用CPU時間已達到所需要的運行時間,則撤消該進程,如果運行壹個時間片後進程的已占用CPU時間還未達所需要的運行時間,也就是進程還需要繼續運行,此時應將進程的優先數減3,然後把它插入就緒隊列等待CPU。
每進行壹次調度程序都打印壹次運行進程、就緒隊列、以及各個進程的 PCB,以便進行檢查。
重復以上過程,直到所要進程都完成為止。
求課程設計報告和用c語言編寫的源代碼