linux kernel調(diào)度算法之timeslice

1. 進(jìn)程的nice值與static_prio之間的轉(zhuǎn)換關(guān)系

/*

* Convert user-nice values [ -20 ... 0 ... 19 ]

* to static priority [ MAX_RT_PRIO..MAX_PRIO-1 ],

* and back.

*/

#define NICE_TO_PRIO(nice) (MAX_RT_PRIO + (nice) + 20)

#define PRIO_TO_NICE(prio) ((prio) - MAX_RT_PRIO - 20)

#define TASK_NICE(p) PRIO_TO_NICE((p)->static_prio)

2.?進(jìn)程的用戶優(yōu)先級值與static_prio之間的轉(zhuǎn)換關(guān)系

/*

* 'User priority' is the nice value converted to something we

* can work with better when scaling various scheduler parameters,

* it's a [ 0 ... 39 ] range.

*/

#define USER_PRIO(p) ((p)-MAX_RT_PRIO)??

#define TASK_USER_PRIO(p) USER_PRIO((p)->static_prio)

#define MAX_USER_PRIO (USER_PRIO(MAX_PRIO))

說明:MAX_RT_PRIO為100帘营,MAX_PRIO為140票渠,即可計(jì)算出MAX_USER_PRIO=40

3. 時間片與進(jìn)程優(yōu)先級的關(guān)系

#define DEF_TIMESLICE (100 * HZ / 1000)? //默認(rèn)時間片是100ms

/*

* task_timeslice() scales user-nice values [ -20 ... 0 ... 19 ]

* to time slice values: [800ms ... 100ms ... 5ms]

*

* The higher a thread's priority, the bigger timeslices

* it gets during one round of execution. But even the lowest

* priority thread gets MIN_TIMESLICE worth of execution time.

*/

#define SCALE_PRIO(x, prio) \

max(x * (MAX_PRIO - prio) / (MAX_USER_PRIO/2), MIN_TIMESLICE)

static unsigned int task_timeslice(task_t *p)

{

????if (p->static_prio < NICE_TO_PRIO(0))

????????return SCALE_PRIO(DEF_TIMESLICE*4, p->static_prio);

????else

????????return SCALE_PRIO(DEF_TIMESLICE, p->static_prio);

}

說明:

????當(dāng)進(jìn)程的靜態(tài)優(yōu)先級<120時,時間片=400*(140-prio)/20;

? ??當(dāng)進(jìn)程的靜態(tài)優(yōu)先級>=120時芬迄,時間片=100*(140-prio)/20;

結(jié)論:進(jìn)程的時間片與其靜態(tài)優(yōu)先級(static_prio)相關(guān)问顷,在運(yùn)行隊(duì)列中的位置與其實(shí)時優(yōu)先級相關(guān)(prio)。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末禀梳,一起剝皮案震驚了整個濱河市杜窄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌算途,老刑警劉巖塞耕,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嘴瓤,居然都是意外死亡扫外,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門廓脆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來筛谚,“玉大人,你說我怎么就攤上這事停忿〖萁玻” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵席赂,是天一觀的道長吮铭。 經(jīng)常有香客問我,道長氧枣,這世上最難降的妖魔是什么沐兵? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任别垮,我火速辦了婚禮便监,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘碳想。我一直安慰自己烧董,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布胧奔。 她就那樣靜靜地躺著逊移,像睡著了一般。 火紅的嫁衣襯著肌膚如雪龙填。 梳的紋絲不亂的頭發(fā)上胳泉,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天拐叉,我揣著相機(jī)與錄音,去河邊找鬼扇商。 笑死凤瘦,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的案铺。 我是一名探鬼主播蔬芥,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼控汉!你這毒婦竟也來了笔诵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤姑子,失蹤者是張志新(化名)和其女友劉穎乎婿,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體街佑,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡次酌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了舆乔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岳服。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖希俩,靈堂內(nèi)的尸體忽然破棺而出吊宋,到底是詐尸還是另有隱情,我是刑警寧澤颜武,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布璃搜,位于F島的核電站,受9級特大地震影響鳞上,放射性物質(zhì)發(fā)生泄漏这吻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一篙议、第九天 我趴在偏房一處隱蔽的房頂上張望唾糯。 院中可真熱鬧,春花似錦鬼贱、人聲如沸移怯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舟误。三九已至,卻和暖如春姻乓,著一層夾襖步出監(jiān)牢的瞬間嵌溢,已是汗流浹背眯牧。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赖草,地道東北人炸站。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像疚顷,于是被迫代替她去往敵國和親旱易。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容