計算機操作系統調度策略(箅法)
發布時間:2009/1/16 0:00:00 訪問次數:1250
調度策略是依靠調度算法來實現的。調度算法有很多種,它們各有特點。這里只簡要介紹如下幾種。
(1)時閭片輪轉法
這種方法要求系統中的每個進程輪流占用處理器運行一個相同的時間片。
具體做法是:將就緒的進程排列為一個就緒進程隊列。調度器每次把處理器分配給處在隊列首部的進程,并使之運行一個規定的時間。當時間片結束時,強迫當前進程讓出處理器,并把這個進程插人就緒進程隊列的尾部,然后就把處理器分配給排在隊列首部的進程,并同樣使之運行一個規定的時間,之后再重復上述過程,如此循環輪轉地運行系統中的所有就緒進程。時間片輪轉法的示意圖如圖1所示。
圖1 具有8個進程的時閭片輪轉調度示意圖
時間片輪轉法是一種運行時問一到就剝奪進程處理器使用權的剝奪式調度。
(2)優先級調度法
在這種調度算法中,是按進程的優先級別來確定待運行進程的,即系統中的所有進程都各自有一個優先級別,這個級別就標志著一個進程在搶占處理器時的權利大小。調度器在調度時,通過觀察就緒進程的優先級別首先選擇優先級別最大的進程來作為待運行進程。
一般來說,使用外圍設各頻繁的進程所具有的優先級別要大一些,這樣有利于提高效率;承擔重要計算任務的進程所具有的優先級別要大一些,這樣有利于盡早得到計算結果;交互式用戶的進程所具有的優先級別要大一些,這樣可使用戶等待響應的時間短一些,等等。
在調度時,也可對進程的優先級別進行動態的調整,即在當進程耗盡時間片或重新被調度時,根據前一次運行的情況再次計算并調整所有進程的優先級別。例如,若一個進程占用處理器時間越長,那么當它被阻塞之后再次獲得調度的優先級別就應降低一些;也可根據一個進程等待處理器的時間長短來重新確定進程新的優先級別。一個進程在隊列中等待處理器的時間越長,那么在它再次被調度時,它的優先級別就可以適當地提高一些。
(3)多級反饋隊列調度法
這種調度算法的思想是,把系統中的所有進程分成若干個具有不同優先級別的組,同一組的進程都具有與所在組同樣的優先級別,并且把每組進程組織成一個先進先出的隊列。在設計時,按優先級別越高的組中的進程應得時間片越短的原則分配時間片。在調度時,調度器每次都從優先級別高的就緒隊列中隊首選擇就緒進程。當在高優先級別的隊列中找不到就緒進程時,才到低優先級別的就緒進程隊列中選取。
多級反饋隊列調度法示意圖如圖2所示。
圖2 具有24個進程的多級反饋隊列調度選中高級別進程時的示意圖
調度工作以獲得待運行進程的進程控制塊為最終目的。調度器在調度部分根據調度算法、一旦得到了待運行進程的進程控制塊之后,立即就會開始進行進程切換工作。之所以在進程切換前一定要獲得待運行進程的進程控制塊,是因為控制塊中存放了進程切換時需要用到一個重要信息——進程的私有堆棧指針。
歡迎轉載,信息來源維庫電子市場網(www.dzsc.com)
調度策略是依靠調度算法來實現的。調度算法有很多種,它們各有特點。這里只簡要介紹如下幾種。
(1)時閭片輪轉法
這種方法要求系統中的每個進程輪流占用處理器運行一個相同的時間片。
具體做法是:將就緒的進程排列為一個就緒進程隊列。調度器每次把處理器分配給處在隊列首部的進程,并使之運行一個規定的時間。當時間片結束時,強迫當前進程讓出處理器,并把這個進程插人就緒進程隊列的尾部,然后就把處理器分配給排在隊列首部的進程,并同樣使之運行一個規定的時間,之后再重復上述過程,如此循環輪轉地運行系統中的所有就緒進程。時間片輪轉法的示意圖如圖1所示。
圖1 具有8個進程的時閭片輪轉調度示意圖
時間片輪轉法是一種運行時問一到就剝奪進程處理器使用權的剝奪式調度。
(2)優先級調度法
在這種調度算法中,是按進程的優先級別來確定待運行進程的,即系統中的所有進程都各自有一個優先級別,這個級別就標志著一個進程在搶占處理器時的權利大小。調度器在調度時,通過觀察就緒進程的優先級別首先選擇優先級別最大的進程來作為待運行進程。
一般來說,使用外圍設各頻繁的進程所具有的優先級別要大一些,這樣有利于提高效率;承擔重要計算任務的進程所具有的優先級別要大一些,這樣有利于盡早得到計算結果;交互式用戶的進程所具有的優先級別要大一些,這樣可使用戶等待響應的時間短一些,等等。
在調度時,也可對進程的優先級別進行動態的調整,即在當進程耗盡時間片或重新被調度時,根據前一次運行的情況再次計算并調整所有進程的優先級別。例如,若一個進程占用處理器時間越長,那么當它被阻塞之后再次獲得調度的優先級別就應降低一些;也可根據一個進程等待處理器的時間長短來重新確定進程新的優先級別。一個進程在隊列中等待處理器的時間越長,那么在它再次被調度時,它的優先級別就可以適當地提高一些。
(3)多級反饋隊列調度法
這種調度算法的思想是,把系統中的所有進程分成若干個具有不同優先級別的組,同一組的進程都具有與所在組同樣的優先級別,并且把每組進程組織成一個先進先出的隊列。在設計時,按優先級別越高的組中的進程應得時間片越短的原則分配時間片。在調度時,調度器每次都從優先級別高的就緒隊列中隊首選擇就緒進程。當在高優先級別的隊列中找不到就緒進程時,才到低優先級別的就緒進程隊列中選取。
多級反饋隊列調度法示意圖如圖2所示。
圖2 具有24個進程的多級反饋隊列調度選中高級別進程時的示意圖
調度工作以獲得待運行進程的進程控制塊為最終目的。調度器在調度部分根據調度算法、一旦得到了待運行進程的進程控制塊之后,立即就會開始進行進程切換工作。之所以在進程切換前一定要獲得待運行進程的進程控制塊,是因為控制塊中存放了進程切換時需要用到一個重要信息——進程的私有堆棧指針。
歡迎轉載,信息來源維庫電子市場網(www.dzsc.com)
上一篇:計算機操作系統進程切換
上一篇:計算機操作系統進程(線程)調度