複製鏈接
請複製以下鏈接發送給好友

動態優先級

鎖定
優先級是指計算機分時操作系統在處理多個作業程序時,決定各個作業程序接受系統資源的優先等級的參數。動態優先級是在創建進程時賦予該進程一個初始優先級,然後其優先級隨着進程的執行情況的變化而改變,以便獲得更好的調度性能。與動態優先級相反的是靜態優先級。
中文名
動態優先級
外文名
Dynamic priority
學    科
計算機科學
定    義
優先級隨時間改變
有關術語
靜態優先級
目    的
確保每個作業都能運行

動態優先級定義

動態優先級,也可以稱之為動態優先權,是指在創建進程時所賦予的優先權,是可以隨進程的推進或隨其等待時間的增加而改變的,以便獲得更好的調度性能。例如,我們可以規定,在就緒隊列中的進程,隨其等待時間的增長,其優先權以速率 a 提高。若所有的進程都具有相同的優先權初值,則顯然是最先進入就緒隊列的進程將因其動態優先權變得最高而優先獲得處理機,此即FCFS 算法。若所有的就緒進程具有各不相同的優先權初值,那麼,對於優先權初值低的進程,在等待了足夠的時間後,其優先權便可能升為最高,從而可以獲得處理機。當採用搶佔式優先權調度算法時,如果再規定當前進程的優先權以速率 b 下降,則可防止一個長作業長期地壟斷處理機。
動態優先級優點是使相應的優先級調度算法比較靈活、科學,可防止有些進程一直得不到調度,也可防止有些進程長期壟斷處理機。動態優先級缺點是需要花費相當多的執行程序時間,因而花費的系統開銷比較大。

動態優先級靜態優先級

靜態優先級,也可以稱做靜態優先權,靜態優先權是在創建進程時確定的,且在進程的整個運行期間保持不變。一般地,優先權是利用某一範圍內的一個整數來表示的,例如,0~7 或 0~255 中的某一整數,又把該整數稱為優先數,只是具體用法各異:有的系統用“0”表示最高優先權,當數值愈大時,其優先權愈低;而有的系統恰恰相反。
確定進程優先權的依據有如下三個方面:
(1) 進程類型。通常,系統進程(如接收進程、對換進程、磁盤 I/O 進程)的優先權高於一般用户進程的優先權。
(2) 進程對資源的需求。如進程的估計執行時間及內存需要量的多少,對這些要求少的進程應賦予較高的優先權。
(3) 用户要求。這是由用户進程的緊迫程度及用户所付費用的多少來確定優先權的。靜態優先權法簡單易行,系統開銷小,但不夠精確,很可能出現優先權低的作業(進程)長期沒有被調度的情況。因此,僅在要求不高的系統中才使用靜態優先權。 [1] 
靜態優先級法的優點是:①簡單易行;②系統開銷小。缺點是:①不太靈活,很可能出現低優先級的作業(進程),長期得不到調度而等待的情況。②靜態優先級法僅適用於實時要求不太高的系統。

動態優先級調度算法

動態優先級調度

調度在計算機中是分配工作所需資源的方法。資源可以指虛擬的計算資源,如線程、進程數據流;也可以指硬件資源,如處理器、網絡連接或擴展卡
進行調度工作的程序叫做調度器。調度器通常的實現使得所有計算資源都處於忙碌狀態(在負載均衡中),允許多位用户有效地同時共享系統資源,或達到指定的服務質量。調度是計算自身的基礎,同時也是編程語言計算模型固有的部分。調度器使得在單處理器上通過多任務處理,從而讓執行多個進程成為可能。
調度器可能會針對不同的目標設計,例如:吞吐率最大化、響應時間最小化、 [2]  最低延遲、或最大化公平。在實踐中,這些目標通常是互相沖突的,因此,調度器會實現一個權衡利弊的折中方案,而側重點則可能是前文提到的任何一種,這取決於用户的需求和目的。

動態優先級高響應比調度

高響應比優先調度算法中,等待時間與服務時間之和就是系統對該作業的響應時間,優先權相當於響應比 RP =響應時間/服務時間。根據響應比的大小來決定系統優先訪問哪個進程。該算法既照顧了短作業,又考慮了作業到達的先後次序,不會使長作業長期得不到服務。
由上式可以看出:
(1) 如果作業的等待時間相同,則要求服務的時間愈短,其優先權愈高,因而該算法有利於短作業。
(2) 當要求服務的時間相同時,作業的優先權決定於其等待時間,等待時間愈長,其優先權愈高,因而它實現的是先來先服務。
(3) 對於長作業, 作業的優先級可以隨等待時間的增加而提高, 當其等待時間足夠長時,其優先級便可升到很高,從而也可獲得處理機。

動態優先級多級反饋隊列

多級反饋隊列調度算法是一種CPU處理機調度算法,UNIX操作系統採取的便是這種調度算法。調度算法的實施過程如下所述:
(1) 應設置多個就緒隊列, 併為各個隊列賦予不同的優先級。 第一個隊列的優先級最高,第二個隊列次之,其餘各隊列的優先權逐個降低。該算法賦予各個隊列中進程執行時間片的大小也各不相同,在優先權愈高的隊列中,為每個進程所規定的執行時間片就愈小。例如,第二個隊列的時間片要比第一個隊列的時間片長一倍,……,第 i+1 個隊列的時間片要比第 i 個隊列的時間片長一倍。
(2) 當一個新進程進入內存後,首先將它放入第一隊列的末尾,按 FCFS 原則排隊等待調度。當輪到該進程執行時,如它能在該時間片內完成,便可準備撤離系統;如果它在一個時間片結束時尚未完成,調度程序便將該進程轉入第二隊列的末尾,再同樣地按 FCFS原則等待調度執行;如果它在第二隊列中運行一個時間片後仍未完成,再依次將它放入第三隊列,……,如此下去,當一個長作業(進程)從第一隊列依次降到第 n 隊列後,在第 n 隊列中便採取按時間片輪轉的方式運行。
(3) 僅當第一隊列空閒時,調度程序才調度第二隊列中的進程運行;僅當第 1~(i-1)隊列均空時,才會調度第 i 隊列中的進程運行。如果處理機正在第 i 隊列中為某進程服務時,又有新進程進入優先權較高的隊列(第 1~(i-1)中的任何一個隊列),則此時新進程將搶佔正在運行進程的處理機, 即由調度程序把正在運行的進程放回到第 i 隊列的末尾,把處理機分配給新到的高優先權進程。 [1] 
參考資料
  • 1.    湯子瀛.計算機操作系統(第3版)湯子瀛:西安電子科技大學出版社,2010
  • 2.    Remzi H. Arpaci-Dusseau; Andrea C. Arpaci-Dusseau. Chapter 7: Scheduling: Introduction, Section 7.6: A New Metric: Response Time. Operating Systems: Three Easy Pieces (PDF). January 4, 2015: 6 [February 2, 2015].