今天查看了linux下的實時線程,FIFO和RR策略的調度,遇到一個問題: priority越大優先級越高呢?還是越小越高呢? 回答這個問題要明白一個問題,首先,linux2.6內核將任務優先級進行了一個劃分: 0——99 實時進程 100——139 非實時進程 現在,這個劃分是起決定作用的,而且一定是數值越小,優先級越高。 但是,有時候從網上會看到 優先級數值越大,優先級越高?這又是怎麼回事?難道有一種說法錯了嗎? 實際的原因是這樣的,對於一個實時進程,他有兩個參數來表明優先級——prio 和 rt_priority, prio纔是調度所用的最終優先級數值,這個值越小,優先級越高; 而rt_priority 被稱作實時進程優先級,他要經過轉化——prio=MAX_RT_PRIO - 1- p->rt_priority; MAX_RT_PRIO = 99;這樣意味着rt_priority值越大,優先級越高; 而內核提供的修改優先級的函數,是修改rt_priority的值,所以越大,優先級越高。 所以用戶在使用實時進程或線程,在修改優先級時,就會有“優先級值越大,優先級越高的說法”,也是對的。 http://bbs.chinaunix.net/thread-1996337-1-1.html |
linux 實時線程優先級問題——數值越大優先級越高嗎?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.