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

優先級

(系統資源的優先等級的參數)

鎖定
優先級(priority)是一種約定,優先級高的先做,優先級低的後做。優先級是計算機分時操作系統在處理多個作業程序時,決定各個作業程序接受系統資源的優先等級的參數。
中文名
優先級
外文名
priority
實    質
程序接受系統資源優先等級參數
所屬分類
計算機分時操作系統

優先級內容簡介

各個作業在輸入計算機之前,都要按一定的要求對它指定優先級。例如要按程序的性質或其長度,或是按作業的來源等,指定其優先級。然後計算機根據各作業程序優先級的高低,來決定處理各程序的先後次序。甚至在處理過程中,還能允許優先級較高的程序中斷優先級較低的程序 [1] 
進程是有優先級的。如果即將被運行的進程的優先級比正在運行的進程的優先級高,則系統可以強行剝奪正在運行的進程的CPU,讓優先級高的進程先運行。

優先級參數

用於支持某個LAN網段中某個HSRP組中的活動HSRP路由器選擇。缺省優先級是100。每組內優先級最高的路由器會被選為該組的活動轉發路由器。

優先級優先級反轉

由於具有較低優先級的任務長時間佔用共享資源,造成申請該資源的優先級最高的進程始終處於等待狀態,此時其他比佔用資源優先級高但比等待資源進程優先級低的進程將獲得處理器的使用權,並先於優先級最高的處於等待狀態的進程先結束,稱這種現象為優先級反轉。

優先級發生的防止

ucos中可以利用互斥型信號量解決上述問題。互斥型信號量創建函數申請一個比使用某共享資源的所有進程中比最高優先級更高的優先級作為預留。當某個進程調用pend函數申請使用該共享資源,同時該資源已經被佔用時,pend函數會判斷是否需要提升佔用該資源進程的優先級,以使其儘快釋放所佔用的資源,從而防止優先級反轉的發生 [1] 

優先級優先級等級

任務的優先級等級與相對截止期、空閒時間之間的層次關係可以用一種線性關係來描述,比如,
di+ksj=g
其中,k為線性關係的斜率,g 可以看成是優先級等級。對於確定的斜率k,g 越小,優先級等級越高。比如,對於g1<g2,滿足di+ksj=g1的任務優先級要高於滿足di+ksj=g2的任務優先級。圖中帶箭頭的斜向上直線表示一種不同等級的排序,越往左上,等級越高。 [2] 

優先級分配公式

∀(di,sj),任務Tij的優先級可以定義成
其中a0=0;ai由下面確定(記m0為正整數):
(1) 當m=2m0(偶數)時,ai=j,i=2j−1,2j,j=1,…,m0−1;am−1=m0,am=m0;am+i=am−i,0<i<m。
(2) 當m=2m0−1(奇數)時,ai=j,i=2j−1,2j,j=1,…,m0−1;am=m0;am+i=am−i,0<i<m。 [2] 

優先級優先級插值

前面對於優先級表的討論都是針對任務具有特定的相對截止期和特定的空閒時間來進行優先級設計的。對於任一任務T,其相對截止期u或空閒時間v不一定是特定的相對截止期或特定的空閒時間,這時T的優先級可通過對事先確定的優先級表進行線性插值獲得。不妨假設d1≤u≤dm,s1≤v≤dn,下面介紹採用二元三點插值公式來計算T的優先級P(T,u,v)的方法。
對於相對截止期u,我們可以在m個典型相對截止期d1,d2,… ,dm中找到離u值最近的3個典型相對截止期,記為di(i=p,p+1 和p+2);同樣地,對於空閒時間v,我們也可以在n個典型空閒時間s1,s2,… ,sn中找到離v值最近的3個典型空閒時間,記為sj(j=q,q+1,q+2)。這樣,我們可以得到點(u,v) 周圍的9個點(di,sj),(i=p,p+1,p+2;j=q,q+1,q+2),每個點對應一個典型的任務Ti j,每個任務Tij具有自己惟一分配的優先級值P(Tij,di,sj)。然後利用這9個點對應的任務優先級值進行Lagrange插值計算P(T,u,v): [2] 
參考資料