基本信息
各個作業在輸入計算機之前,都要按一定的要求對它指定優先權。例如要按程式的性質或其長度,或是按作業的來源等,指定其優先權。然後計算機根據各作業程式優先權的高低,來決定處理各程式的先後次序。甚至在處理過程中,還能允許優先權較高的程式中斷優先權較低的程式。
進程是有優先權的。如果即將被運行的進程的優先權比正在運行的進程的優先權高,則系統可以強行剝奪正在運行的進程的CPU,讓優先權高的進程先運行。
參數
用於支持某個LAN網段中某個HSRP組中的活動HSRP路由器選擇。預設優先權是100。每組內優先權最高的路由器會被選為該組的活動轉發路由器。
優先權反轉
由於具有降低優先權的任務長時間占用共享資源,造成申請該資源的優先權最高的進程始終處於等待狀態,此時其他比占用資源優先權高但比等待資源進程優先權低的進程將獲得處理器的使用權,並先於優先權最高的處於等待狀態的進程先結束,稱這種現象為優先權反轉。
發生的防止
ucos中可以利用互斥型信號量解決上述問題。互斥型信號量創建函式申請一個比使用某共享資源的所有進程中比最高優先權更高的優先權作為預留。當某個進程調用pend函式申請使用該共享資源,同時該資源已經被占用時,pend函式會判斷是否需要提升占用該資源進程的優先權,以使其儘快釋放所占用的資源,從而防止優先權反轉的發生。
優先權等級
任務的優先權等級與相對截止期、空閒時間之間的層次關係可以用一種線性關係來描述,比如,
di+ksj=g
其中,k為線性關係的斜率,g 可以看成是優先權等級。對於確定的斜率k,g 越小,優先權等級越高。比如,對於g1<g2,滿足di+ksj=g1的任務優先權要高於滿足di+ksj=g2的任務優先權。圖中帶箭頭的斜向上直線表示一種不同等級的排序,越往左上,等級越高。
分配公式
∀(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。
優先權插值
前面對於優先權表的討論都是針對任務具有特定的相對截止期和特定的空閒時間來進行優先權設計的。對於任一任務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):