文章目录

  • 一、进程优先级相关字段
    • 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 字段 值总为 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 实时优先级 )相关推荐

  1. Linux内核-进程管理

    Linux内核-进程管理 引言 本文主要介绍Linux内核进程管理相关知识,包括进程描述符.进程创建.销毁.状态.线程的实现以及Linux进程相关命令等. 进程描述符 内核把进程的列表存放在叫做任务队 ...

  2. 挑战360无死角讲解Linux内核 进程管理,调度器的5种实现丨C++后端开发丨C/C++Linux服务器开发丨内核开发丨网络编程

    挑战360无死角讲解 进程管理,调度器的5种实现 1. 8500行 CFS是什么 2. RT调度器使用场景 3. IDLE/Dealine调度器 视频讲解如下,点击观看: 挑战360无死角讲解Linu ...

  3. Linux内核——进程管理与调度

    进程的管理与调度 进程管理 进程描写叙述符及任务结构 进程存放在叫做任务队列(tasklist)的双向循环链表中.链表中的每一项包括一个详细进程的全部信息,类型为task_struct,称为进程描写叙 ...

  4. linux kernel 进程管理,Linux内核 | 进程管理

    1. 进程和线程 1.1 定义 进程是处于运行状态的程序和相关资源的总称,是资源分配的最小单位. 线程是进程的内部的一个执行序列,是CPU调度的最小单位.有一段可执行程序代码. 有一段进程专用的系统堆 ...

  5. linux进程家族树,Linux内核 | 进程管理

    作者:世至其美 博客地址:hqber.com 转载须注明以上信息, 更多文章,请访问个人博客:hqber.com 1. 进程和线程 1.1 定义 进程是处于运行状态的程序和相关资源的总称,是资源分配的 ...

  6. 【Linux 内核】进程管理 - 进程优先级 ① ( 限期进程 | 实时进程 | 普通进程 | 进程优先级相关字段 )

    文章目录 一.进程分类 ( 限期进程 | 实时进程 | 普通进程 ) 二.进程优先级相关字段 一.进程分类 ( 限期进程 | 实时进程 | 普通进程 ) Linux 进程 分为 333 种类型 , & ...

  7. linux 内核内存管理

    物理内存 相关数据结构 page(页) Linux 内核内存管理的实现以 page 数据结构为核心,其他的内存管理设施都基于 page 数据结构,如 VMA 管理.缺页中断.RMAP.页面分配与回收等 ...

  8. 【Linux 内核 内存管理】虚拟地址空间布局架构 ③ ( 内存描述符 mm_struct 结构体成员分析 | mmap | mm_rb | task_size | pgd | mm_users )

    文章目录 一.mm_struct 结构体成员分析 1.mmap 成员 2.mm_rb 成员 3.get_unmapped_area 函数指针 4.task_size 成员 5.pgd 成员 6.mm_ ...

  9. 【Linux 内核 内存管理】内存管理架构 ④ ( 内存分配系统调用过程 | 用户层 malloc free | 系统调用层 brk mmap | 内核层 kmalloc | 内存管理流程 )

    文章目录 一.内存分配系统调用过程 ( 用户层 | 系统调用 | 内核层 ) 二.内存管理流程 一.内存分配系统调用过程 ( 用户层 | 系统调用 | 内核层 ) " 堆内存 " ...

最新文章

  1. OpenCV中的二进制鲁棒独立基本特征——BRIEF
  2. python字符串转归类_pandas剪切:如何将分类标签转换为字符串(否则无法导出到Excel)?
  3. java 字符串编程题,JAVA 基础编程练习题7 【程序 7 处理字符串】
  4. [NOIP模拟测试3] 建造游乐园 题解(欧拉图性质)
  5. 005_JavaScript使用
  6. 成功解决ImportError: cannot import name 'pywrap_tensorflow'
  7. boost::stl_interfaces模块实现节点迭代器的测试程序
  8. a 寻路算法 java_A*(也叫A star, A星)寻路算法Java版 | 学步园
  9. 中国进口消费市场研究报告2020
  10. 买到同类票的概率(洛谷P2719题题解,Java语言描述)
  11. ROS在编译生成自定义消息时报错ModuleNotFoundError: No module named 'em'
  12. visio 模具_Visio2013 自定义模具 简单公式
  13. 文本数据标注工具doccano【介绍最详细的一遍文章】
  14. nsarray数组越界_NSArray,NSMutableArray –目标C数组
  15. matlab代码:考虑实时市场联动的电力零售商鲁棒定价策略
  16. mysql中rtrim的用法,MySQL RTRIM()用法及代码示例
  17. 欧拉计划 P429 (数论)
  18. 蓝牙速率,距离和组网
  19. 椭圆一般方程(ABCDEF)转椭圆参数方程(长短轴,几何中心)
  20. 【资源】Oculus meta Quest 2游戏下载VR一体机游戏资源合集下载教程Pro

热门文章

  1. 分分钟搭建Oracle环境
  2. Android 之 ProgressDialog用法介绍(矩形进度条 和 圆形 进度条)
  3. android 下的网络图片加载
  4. 林正刚本地化中摸索前进 称中国未来无可比拟
  5. 判断一个python字符串中是否包含中文字符
  6. Spring MVC静态资源处理
  7. IE下a标签会触发window.onbeforeunload的问题
  8. salesforce 零基础学习(四十二)简单文件上传下载
  9. iOS 集成银联支付swift
  10. UVa 537 - Artificial Intelligence?