文章目录

  • 一、sched_rt_entity 源码分析
    • 1、run_list 字段
    • 2、timeout 字段
    • 3、watchdog_stamp 字段
    • 4、time_slice 字段
    • 5、back 字段
    • 6、parent 字段
    • 7、rt_rq 字段
    • 8、my_q 字段
  • 二、总结

一、sched_rt_entity 源码分析


上一篇博客 【Linux 内核】实时调度类 ① ( 进程分类 | 实时进程、普通进程 | Linux 内核 SCHED_FIFO、SCHED_RR 调度策略 | 实时调度实体 sched_rt_entity ) 引入了 实时调度实体 sched_rt_entity 结构体源码 , 在 Linux 内核源码的 linux-5.6.18\include\linux\sched.h 头文件中 ;

下面开始分析该 实时调度实体 sched_rt_entity 结构体源码 ;

sched_rt_entity 结构体 表示 " 实时调度实体 " 类型 ;

1、run_list 字段

sched_rt_entity 结构体的 run_list 字段 , 是用于将 " 实时调度实体 " 加入到 优先级队列 中的 ;

struct list_head     run_list;

2、timeout 字段

sched_rt_entity 结构体的 timeout 字段 , 用于 设置 调度 超时时间 ;

unsigned long            timeout;

3、watchdog_stamp 字段

sched_rt_entity 结构体的 watchdog_stamp 字段 , 用于 记录 jiffies 的值 ;

unsigned long            watchdog_stamp;

4、time_slice 字段

sched_rt_entity 结构体的 time_slice 字段 , 表示 时间片 ;

unsigned int         time_slice;

5、back 字段

sched_rt_entity 结构体的 back 字段 , 用于 由上到下 连接 " 实时调度实体 " ;

struct sched_rt_entity       *back;

6、parent 字段

sched_rt_entity 结构体的 parent 字段 , 指向 父类 " 实时调度实体 " ;

struct sched_rt_entity       *parent;

7、rt_rq 字段

sched_rt_entity 结构体的 rt_rq 字段 , 表示 " 实时调度实体 " 所属的 " 实时运行队列 " ;

 /* rq on which this entity is (to be) queued: */struct rt_rq            *rt_rq;

8、my_q 字段

sched_rt_entity 结构体的 my_q 字段 , 表示 " 实时调度实体 " 所拥有的 " 实时运行队列 " , 用于管理 " 子任务 " ;

 /* rq "owned" by this entity/group: */struct rt_rq            *my_q;

二、总结


实时调度实体 sched_rt_entity 源码注释 :

struct sched_rt_entity {struct list_head     run_list;       // 用于将 " 实时调度实体 " 加入到 优先级队列 中的unsigned long           timeout;        // 用于 设置 调度 超时时间unsigned long           watchdog_stamp; // 用于 记录 jiffies 的值unsigned int         time_slice;     // 时间片unsigned short            on_rq;          unsigned short          on_list;struct sched_rt_entity      *back;      // 用于 由上到下 连接 " 实时调度实体 "
#ifdef CONFIG_RT_GROUP_SCHEDstruct sched_rt_entity      *parent;    // 指向 父类 " 实时调度实体 "/* rq on which this entity is (to be) queued: */struct rt_rq           *rt_rq;         // 表示 " 实时调度实体 " 所属的 " 实时运行队列 " /* rq "owned" by this entity/group: */struct rt_rq            *my_q; // 表示 " 实时调度实体 " 所拥有的 " 实时运行队列 " , 用于管理 " 子任务 "
#endif
} __randomize_layout;

【Linux 内核】实时调度类 ② ( 实时调度实体 sched_rt_entity 源码分析 | run_list、timeout、watchdog_stamp、time_slice 字段 )相关推荐

  1. Apache Storm 实时流处理系统ACK机制以及源码分析

    1.ACK机制简介 Storm的可靠性是指Storm会告知用户每一个消息单元是否在一个指定的时间(timeout)内被完全处理.完全处理的意思是该MessageId绑定的源Tuple以及由该源Tupl ...

  2. 4hutool源码分析:DateUtil(时间工具类)-格式化时间(万字长文源码分析,学大佬如何写代码)

    技术活,该赏 点赞再看,养成习惯 看本篇文章前,建议先对java源码的日期和时间有一定的了解,如果不了解的话,可以先看这篇文章: 万字博文教你搞懂java源码的日期和时间相关用法 关联文章: huto ...

  3. 在linux内核3.14.43添加自己的驱动源码,linux内核如何加入自己的驱动

    linux添加自己的驱动,内核源码版本:3.14.43 1. 添加自己的文件夹 在驱动里面加入自己的文件夹,例如我在driver/char/文件夹里面加入自己的pwm驱动,我需要在char目录下,新建 ...

  4. Linux驱动修炼之道-RTC子系统框架与源码分析【转】

    转自:http://helloyesyes.iteye.com/blog/1072433 努力成为linux kernel hacker的人李万鹏原创作品,为梦而战.转载请标明出处 http://bl ...

  5. 我的内核学习笔记10:Intel GPIO驱动源码分析

    本文对Intel e3800的GPIO驱动源码进行分析. 一.概述 1.1 内核配置 Intel e3800的GPIO在Linux内核中使用的驱动名为gpio_ich(为了行文方便,将对应的设备称为& ...

  6. Linux 学习数据专题【管理、编程、源码分析】——Linux相关图书选购指南

    编辑推荐--Linux专题  http://www.china-pub.com/main/linux/linux_fengrui.htm Linux相关图书选购指南 本期特约作者 冯锐 (会员名:ph ...

  7. 类ThreadLocal的使用与源码分析

    变量值的共享可以使用public static的形式,所有的线程都使用同一个变量.如果每个线程都有自己的共享变量,就可以使用ThreadLocal.比如Hibernat的session问题就是存在Th ...

  8. Linux usb设备驱动(2)--- usbmouse.c 源码分析

    一个 USB 总线引出两个重要的链表,一个为 USB 设备链表,一个为 USB 驱动链表.设备链表包含各种系统中的 USB 设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb de ...

  9. chinaunix 内核源码分析精贴

    1. 内核学习方法,编译.调试等常见问题 1.1 关于编译升级内核到2.6.0的一些问题 作者:ommm         http://linux.chinaunix.net/bbs/thread-2 ...

最新文章

  1. Tensorflow【实战Google深度学习框架】—TensorBoard
  2. 介绍几种SSIS部署方式
  3. Hd Simpsons’ Hidden Talents
  4. 浙江大学远程教育学院计算机考试,浙江大学远程教育学院机试题 Windows操作题(共15分,若有做错请酌情 ....docx...
  5. 浙江省第二届大学生网络与信息安全竞赛在线预赛
  6. 实战MySQL升级的最佳方法
  7. Python学习手册之Python介绍、基本语法(二)
  8. python实现单例模式的几种方式_基于Python中单例模式的几种实现方式及优化详解...
  9. 解决ssh正常登录sftp不能登录的问题
  10. 资深架构专家聊架构之道:规划、简化和演化(续)
  11. window下启动Redis闪退问题解决
  12. 《Advanced .NET Debugging》 读书笔记 Listing 5-6: Pining的简单示例
  13. vsm什么意思_价值流程图VSM浅析
  14. 自助取号机应用-排队叫号机优势介绍
  15. 《人生十论》. 钱穆
  16. ROS turtlebot_follower :让机器人跟随我们移动
  17. 基于知识图谱的推荐系统(KGRS)综述
  18. 小米手机混淆升级崩溃记录与解决
  19. 清华“差生”10年奋斗经历,只写事业,不写女人
  20. Python 分析 9 万条数据告诉你复仇者联盟谁才是绝对 C 位!

热门文章

  1. JS无法获取display为none的隐藏元素的宽度和高度的解决方案
  2. 《FPGA全程进阶---实战演练》第一章之如何学习FPGA
  3. Shell脚本Ping监控主机是否存活并发邮件报警(三种方法)
  4. 两台主机ssh的测试及配置
  5. 图说:Word 15 阅读模式
  6. Oracle 数据库DBA管理手册!
  7. python后端工程师 数据爬虫
  8. C#基础——密码加密
  9. UIPageControl
  10. 并查集+二分-hdu-4750-Count The Pairs