当前位置: 首页 > 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_rq
    • 3.3、优先级队列rt_prio_array
    • 3.4、带宽控制结构体 rt_bandwidth
    • 3.5、组调度结构体 task_group
    • 3.6、总结
  • 参考博文:

1、Linux调度概述

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

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

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

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

http://www.mrgr.cn/news/94507.html

相关文章:

  • 【深度学习与大模型基础】第3章-张量
  • 探针泄露(WEB)
  • RTDETR融合[CVPR2025]ARConv中的自适应矩阵卷积
  • GolangTCP通信解决粘包问题
  • SQL Server查询优化
  • Android LeakCanary 使用 · 原理详解
  • 《TCP/IP网络编程》学习笔记 | Chapter 17:优于 select 的 epoll
  • Linux 安装 Oh My Zsh
  • Centos 7 安装达梦数据库
  • Odoo18 Http鉴权+调用后端接口
  • MySQL(事物上)
  • 学习15天:pytest
  • STM32配套程序接线图
  • linux磁盘和文件系统
  • 【VUE2】第五期——VueCli创建项目、Vuex多组件共享数据、json-server——模拟服务端api
  • 【深度学习与大模型基础】第4章-矩阵的运算
  • Linux(2025.3.14)
  • C++前缀和
  • 【亲测有用】数据集成平台能力演示(支持国产数据库DaMeng与KingBase)
  • CNN 稠密任务经典结构