處理機調度,編寫一個進程調度程序,允許多個進程共行的進程調度程序。
進程調度算法:采用最高優先數優先的調度算法(即把處理機分配給優先數最高的進程)和先來先服務算法。
每個進程有一個進程控制塊(PCB)表示。進程控制塊可以包含如下信息:進程名、優先數、到達時間、需要運行時間、已用CPU時間、進程狀態等等。
進程的優先數及需要的運行時間可以事先人為地指定(也可以由隨機數產生)。進程的到達時間為輸入進程的時間。
進程的運行時間以時間片為單位進行計算。
每個進程的狀態可以是就緒 W(Wait)、運行R(Run)、或完成F(Finish)三種狀態之一。
就緒進程獲得 CPU后都只能運行一個時間片。用已占用CPU時間加1來表示。
如果運行一個時間片后,進程的已占用 CPU時間已達到所需要的運行時間,則撤消該進程,如果運行一個時間片后進程的已占用CPU時間還未達所需要的運行時間,也就是進程還需要繼續運行,此時應將進程的優先數減1(即降低一級),然后把它插入就緒隊列等待CPU。
每進行一次調度程序都打印一次運行進程、就緒隊列、以及各個進程的 PCB,以便進行檢查。
重復以上過程,直到所要進程都完成為止
標簽:
處理機
調度
上傳時間:
2013-11-26
上傳用戶:tianjinfan