当前位置: 首页 > news >正文

Linux内核实时机制18 - RT调度器1 - 数据结构

文章目录

  • 1、Linux调度概述
  • 2、实时调度类 rt_sched_class
    • 2.1、SCHED_FIFO 调度策略
    • 2.2、SCHED_RR 调度策略
  • 3、实时调度相关数据结构
    • 3.1、实时调度实体 sched_rt_entity
    • 3.2、优先级队列rt_prio_array
    • 3.3、实时就绪队列 rt_rq
    • 3.4、带宽控制结构体 rt_bandwidth
    • 3.5、组调度结构体 task_group
  • 参考博文:

1、Linux调度概述

  • 实时调度器主要为了解决以下四种情况

    • 1、在唤醒任务时,待唤醒的任务放置到哪个运行队列最合适(这里称为pre-balance);
    • 2、新唤醒任务的优先级比某个运行队列的当前任务更低时,怎么处理这个更低优先级任务;
    • 3、新唤醒任务的优先级比同一运行队列的某个任务更高时,并且抢占了该低优先级任务,该低优先级任务怎么处理?
    • 4、当某个任务降低自身优先级,导致原来更低优先级任务相比之下具有更高优先级,这种情况怎么处理。
  • 对于情况2和情况3,实时调度器采用push操作。

    • push操作从根域中所有运行队列中挑选一个运行队列(一个cpu对应一个运行队列),该运行队列的优先级比待push任务的优先级更低。运行队列的优先级是指该运行队列上所有任务的最高优先级。
  • 对于情况4,实时调度器采用pull操作。

    • 当某个运行队列上准备调度时,候选任务比当前任务的优先级更低时,实时调度器检查其他运行队列,确定是否可以pull更高优先级任务到本运行队列。
    • 还有,当某个运行队列上发生调度时,该运行队列

相关文章:

  • hive开窗函数
  • JavaScript性能优化实战
  • 第四十五篇-Tesla P40关闭GPU的ECC释放部分显存
  • 刷leetcode hot100--动态规划3.11
  • 指针的比较
  • MQTT 物联网的首先协议
  • 小程序 wxml 语法 —— 36 wxml 语法 - setData() 修改数据
  • 基于协同过滤算法的音乐推荐系统(源码+部署教程)
  • 【华三(H3C)交换机上修改 NTP 配置】
  • Docker安装Kafka(内含zookeeper)
  • 第二章:盒模型的奥秘
  • 每天一道算法题【蓝桥杯】【使用最小花费爬楼梯】
  • 扩散 Transformer 策略:用于通才视觉-语言-动作学习的规模化扩散 Transformer
  • 51c大模型~合集10
  • 《使用 Python Flask + MySQL + ECharts 构建销售数据看板》实战案例笔记
  • osg安装编译第三方,完整详细过程。 libtiff/tif config.vc.hdoes not exist
  • GStreamer —— 2.17、Windows下Qt加载GStreamer库后运行 - “播放教程 5:色彩平衡“(附:完整源码)
  • 基于Debian12的SVN和Trac自动安装部署脚本
  • upload-labs-master通关攻略(17~19)
  • RSA算法:开启现代密码学的数学之钥
  • 范志毅跨界归来做青训,探索中国足球人才培养新模式
  • 国家卫健委:有条件的二级及以上综合医院要开设老年医学科
  • 商务部再回应中美经贸高层会谈:美方要拿出诚意、拿出行动
  • 普京:“胜利日停火”已开始生效
  • 现场|万米云端,遇见上博
  • 外交部回应中美经贸高层会谈:这次会谈是应美方请求举行的