前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux 内核】进程管理 - 进程优先级 ② ( prio 调度优先级 | static_prio 静态优先级 | normal_prio 正常优先级 | rt_priority 实时优先级 )

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

作者头像
韩曙亮
发布2023-03-30 13:47:35
4.7K0
发布2023-03-30 13:47:35
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、进程优先级相关字段


linux-5.6.18\include\linux\sched.h 头文件中 task_struct " 进程描述符 " 结构体 中定义了 进程优先级字段如下 :

代码语言:javascript
复制
	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

, 没有意义 ;

对于 " 实时进程 " 来说 , 静态优先级 static_prio 字段 值总为

0

, 没有意义 ;

对于 " 普通进程 " 来说 , 静态优先级 static_prio 字段 值为

\rm 120 + nice

, 其数值越小 , 优先级越高 ;

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

normal_prio 字段 是 " 正常优先级 " , 数值越小 , 优先级越高 ,

对于 " 限期进程 " 来说 , 正常优先级 normal_prio 字段 值总为

-1

;

对于 " 实时进程 " 来说 , 正常优先级 normal_prio 字段 值

99 - \rm rt\_priority

;

对于 " 普通进程 " 来说 , 正常优先级 normal_prio 字段 值 与 静态优先级 static_prio 字段相等 , 为

\rm 120 + nice

, 其数值越小 , 优先级越高 ;

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

rt_priority 字段 是 " 实时优先级 " ,

对于 " 限期进程 " 来说 , 实时优先级 rt_priority 字段 值总为

0

, 没有意义 ;

对于 " 实时进程 " 来说 , 实时优先级 rt_priority 字段 值为

1

~

99

, 其数值越大 , 优先级越高 ;

对于 " 普通进程 " 来说 , 实时优先级 rt_priority 字段 值总为

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 , 没有意义

0

, 没有意义字段 值总为

0

, 没有意义

\rm 120 + nice

, 其数值越小 , 优先级越高normal_prio 正常优先级

-1
99 - \rm rt\_priority
\rm 120 + nice

, 其数值越小 , 优先级越高rt_priority 实时优先级字段 值总为

0

, 没有意义字段 值为

1

~

99

, 其数值越大 , 优先级越高字段 值总为

0

, 没有意义

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、进程优先级相关字段
    • 1、prio 字段 ( 调度优先级 )
      • 2、static_prio 字段 ( 静态优先级 )
        • 3、normal_prio 字段 ( 正常优先级 )
          • 4、rt_priority 字段 ( 实时优先级 )
          • 二、三种进程的四种优先级总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档