核心內部變數(p->prio)的取值,在<linux/sched.h>定義
1)MAX_RT_PRIO為100
2)RT tasks為0到99
3)非RT task取值100到139
TOP命令顯示非RT執行緒時,PR欄位的取值是把task的prio減去100,所以看到的值是0~39
PS命令顯示的優先順序,根據顯示選項、程序的排程策略與狀態,採用以下幾種計算方法之一:
- "priority":過去是-20..20, 當前是-100..39
- "intpri"和 "opri",過去是39..29,當前是 -40..99
- "pri_foo" -- match up w/ nice values of sleeping processes, (-120..19)
- "pri_bar" -- makes RT pri show as negative (-99..40)
- "pri_baz" -- the kernel"s ->prio value, as of Linux 2.6.8 (1..140)
以上是傳統的UNIX取值
- "pri" -- 過去是20..60,當前是 (0..139)
- "pri_api" -- match up w/ RT API (-40..99)
以上是非傳統的UNIX取值
=============
詳細的實現,可參見軟體包procps-ng的原始碼。
核心內部變數(p->prio)的取值,在<linux/sched.h>定義
1)MAX_RT_PRIO為100
2)RT tasks為0到99
3)非RT task取值100到139
TOP命令顯示非RT執行緒時,PR欄位的取值是把task的prio減去100,所以看到的值是0~39
PS命令顯示的優先順序,根據顯示選項、程序的排程策略與狀態,採用以下幾種計算方法之一:
- "priority":過去是-20..20, 當前是-100..39
- "intpri"和 "opri",過去是39..29,當前是 -40..99
- "pri_foo" -- match up w/ nice values of sleeping processes, (-120..19)
- "pri_bar" -- makes RT pri show as negative (-99..40)
- "pri_baz" -- the kernel"s ->prio value, as of Linux 2.6.8 (1..140)
以上是傳統的UNIX取值
- "pri" -- 過去是20..60,當前是 (0..139)
- "pri_api" -- match up w/ RT API (-40..99)
以上是非傳統的UNIX取值
=============
詳細的實現,可參見軟體包procps-ng的原始碼。