Linux 内核进程管理 - 进程优先级 ② ( prio 调度优先级 | static_prio 静态优先级 | normal_prio 正常优先级 | rt_priority 实时优先级 )

要须心地收汗马,孔孟行世目杲杲。这篇文章主要讲述Linux 内核进程管理 - 进程优先级 ② ( prio 调度优先级 | static_prio 静态优先级 | normal_prio 正常优先级 | rt_priority 实时优先级 )相关的知识,希望能为你提供帮助。




文章目录

  • ??一、进程优先级相关字段??
  • ??1、prio 字段 ( 调度优先级 )??
  • ??2、static_prio 字段 ( 静态优先级 )??
  • ??3、normal_prio 字段 ( 正常优先级 )??
  • ??4、rt_priority 字段 ( 实时优先级 )??
  • ??二、三种进程的四种优先级总结??




一、进程优先级相关字段

在 ??linux-5.6.18\\include\\linux\\sched.h??? 头文件中 ??task_struct?? " 进程描述符 " 结构体 中定义了 进程优先级字段如下 :
intprio; // 调度优先级
intstatic_prio; // 静态优先级
intnormal_prio; // 正常优先级
unsigned intrt_priority; // 实时优先级





1、prio 字段 ( 调度优先级 )



??prio?? 字段 是 " 调度优先级 " , 数值越小 , 优先级越高 ;
一般情况下 ??prio??? 字段 等于 ??normal_prio?? 字段 ;
?特殊情况 :? 在锁同步机制中 , 如果 A 进程 占有了 实时互斥锁 , B 进程等待该 实时互斥锁 , 假如 B 进程的优先级 高于 A 进程 的优先级 , 此时就会将 占有 实时互斥锁 的 A 进程的 ??prio??? 优先级 提高到与 B 进程 ??prio?? 优先级相等的地位 ;




2、static_prio 字段 ( 静态优先级 )



??static_prio?? 字段 是 " 静态优先级 " ,
对于 " 限期进程 " 来说 , 静态优先级 ??static_prio?? 字段 值总为 000 , 没有意义 ;
对于 " 实时进程 " 来说 , 静态优先级 ??static_prio?? 字段 值总为 000 , 没有意义 ;
对于 " 普通进程 " 来说 , 静态优先级 ??static_prio?? 字段 值为 120+nice\\rm 120 + nice120+nice , 其数值越小 , 优先级越高 ;




3、normal_prio 字段 ( 正常优先级 )



??normal_prio?? 字段 是 " 正常优先级 " , 数值越小 , 优先级越高 ,
对于 " 限期进程 " 来说 , 正常优先级 ??normal_prio?? 字段 值总为 ?1-1?1 ;
对于 " 实时进程 " 来说 , 正常优先级 ??normal_prio?? 字段 值 99?rt_priority99 - \\rm rt\\_priority99?rt_priority ;
对于 " 普通进程 " 来说 , 正常优先级 ??normal_prio??? 字段 值 与 静态优先级 ??static_prio?? 字段相等 , 为 120+nice\\rm 120 + nice120+nice , 其数值越小 , 优先级越高 ;




4、rt_priority 字段 ( 实时优先级 )



??rt_priority?? 字段 是 " 实时优先级 " ,
对于 " 限期进程 " 来说 , 实时优先级 ??rt_priority?? 字段 值总为 000 , 没有意义 ;
对于 " 实时进程 " 来说 , 实时优先级 ??rt_priority?? 字段 值为 111 ~ 999999 , 其数值越大 , 优先级越高 ;
对于 " 普通进程 " 来说 , 实时优先级 ??rt_priority?? 字段 值总为 000 , 没有意义 ;










二、三种进程的四种优先级总结

进程优先级
限期进程
实时进程
普通进程
prio 调度优先级
等于 normal_prio 字段
等于 normal_prio 字段
等于 normal_prio 字段
static_prio 调度优先级
字段 值总为
000 , 没有意义
字段 值总为
000 , 没有意义
120+nice\\rm 120 + nice120+nice , 其数值越小 , 优先级越高
normal_prio 正常优先级


?1-1?1
99?rt_priority99 - \\rm rt\\_priority99?rt_priority
120+nice\\rm 120 + nice120+nice , 其数值越小 , 优先级越高
rt_priority 实时优先级
字段 值总为
000 , 没有意义
字段 值为
111 ~999999 , 其数值越大 , 优先级越高
字段 值总为
000 , 没有意义
【Linux 内核进程管理 - 进程优先级 ② ( prio 调度优先级 | static_prio 静态优先级 | normal_prio 正常优先级 | rt_priority 实时优先级 )】


    推荐阅读