靜態優先級,動態優先級,實時優先級 詳解


靜態優先級:(定義在進程描述符中的:static_prio)

動態優先級:(定義在進程描述符中的:prio)

實時優先級:(定義在進程描述符中的:rt_priority)

 

靜態優先級:

    定義:他不隨時間改變,內核不會主動修改它,只能通過系統調用nice去修改static_prio

動態優先級:

   定義:調度程序通過或減少進程靜態優先級來獎勵IO消耗型進程或懲罰CPU消耗進程,調整后的優先級為動態優先級(prio)

實時優先級:

  實時優先級只對實時進程有效

 

宏定義:

MAX_PRIO:140

MAX_RT_PRIO:100

nice:[-20,19]

 

進程的動態優先級取值范圍:[0,MAX_PRIO-1],即[0,139]

     針對進程划分為兩個范圍優先級:

 

     普通進程:[0,MAX_RT_PRIO-1]即[0,99]

            計算方法:靜態優先級與進程交互性函數計算出來的,隨任務的實際運行情況調整

 

     實時進程:[MAX_RT_PRIO,MAX_PRIO]即[100,139]

            計算方法:prio=MAX_RT_PRIO-1 - rt_priority

     實時進程的優先級與動態優先級成線性關系,不隨時程運行而改變

     也就是說,如果一個進程是實時進程即在[0,99]之間優先級prio 與rt_priority之間的關系是固定的

 

靜態優先級與nice 關系  

static_prio=MAX_RT_PRIO+nice+20

 

 

 

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM