文章目录
- 1、prio 字段 ( 调度优先级 )
- 2、static_prio 字段 ( 静态优先级 )
- 3、normal_prio 字段 ( 正常优先级 )
- 4、rt_priority 字段 ( 实时优先级 )
一、进程优先级相关字段
在 linux-5.6.18\include\linux\sched.h
头文件中 task_struct
" 进程描述符 " 结构体 中定义了 进程优先级字段如下 :
int prio; // 调度优先级
int static_prio; // 静态优先级
int normal_prio; // 正常优先级
unsigned int rt_priority; // 实时优先级
1、prio 字段 ( 调度优先级 )
prio
字段 是 " 调度优先级 " , 数值越小 , 优先级越高 ;
一般情况下 prio
字段 等于 normal_prio
字段 ;
特殊情况 : 在锁同步机制中 , 如果 A 进程 占有了 实时互斥锁 , B 进程 等待该 实时互斥锁 , 假如 B 进程的优先级 高于 A 进程 的优先级 , 此时就会将 占有 实时互斥锁 的 A 进程的 prio
优先级 提高到与 B 进程 prio
优先级相等的地位 ;
2、static_prio 字段 ( 静态优先级 )
static_prio
字段 是 " 静态优先级 " ,
对于 " 限期进程 " 来说 , 静态优先级 static_prio
字段 值总为
0
0
0 , 没有意义 ;
对于 " 实时进程 " 来说 , 静态优先级 static_prio
字段 值总为
0
0
0 , 没有意义 ;
对于 " 普通进程 " 来说 , 静态优先级 static_prio
字段 值为
120
+
n
i
c
e
\rm 120 + nice
120+nice , 其数值越小 , 优先级越高 ;
3、normal_prio 字段 ( 正常优先级 )
normal_prio
字段 是 " 正常优先级 " , 数值越小 , 优先级越高 ,
对于 " 限期进程 " 来说 , 正常优先级 normal_prio
字段 值总为
−
1
-1
−1 ;
对于 " 实时进程 " 来说 , 正常优先级 normal_prio
字段 值
99
−
r
t
_
p
r
i
o
r
i
t
y
99 - \rm rt\_priority
99−rt_priority ;
对于 " 普通进程 " 来说 , 正常优先级 normal_prio
字段 值 与 静态优先级 static_prio
字段相等 , 为
120
+
n
i
c
e
\rm 120 + nice
120+nice , 其数值越小 , 优先级越高 ;
4、rt_priority 字段 ( 实时优先级 )
rt_priority
字段 是 " 实时优先级 " ,
对于 " 限期进程 " 来说 , 实时优先级 rt_priority
字段 值总为
0
0
0 , 没有意义 ;
对于 " 实时进程 " 来说 , 实时优先级 rt_priority
字段 值为
1
1
1 ~
99
99
99 , 其数值越大 , 优先级越高 ;
对于 " 普通进程 " 来说 , 实时优先级 rt_priority
字段 值总为
0
0
0 , 没有意义 ;
二、三种进程的四种优先级总结
进程优先级 | 限期进程 | 实时进程 | 普通进程 |
prio 调度优先级 | 等于 normal_prio 字段 | 等于 normal_prio 字段 | 等于 normal_prio 字段 |
static_prio 调度优先级 | 字段 值总为 0 0 0 , 没有意义 | 字段 值总为 0 0 0 , 没有意义 | 120 + n i c e \rm 120 + nice 120+nice , 其数值越小 , 优先级越高 |
normal_prio 正常优先级 | − 1 -1 −1 | 99 − r t _ p r i o r i t y 99 - \rm rt\_priority 99−rt_priority | 120 + n i c e \rm 120 + nice 120+nice , 其数值越小 , 优先级越高 |
rt_priority 实时优先级 | 字段 值总为 0 0 0 , 没有意义 | 字段 值为 1 1 1 ~ 99 99 99 , 其数值越大 , 优先级越高 | 字段 值总为 0 0 0 , 没有意义 |