当前位置: 首页 > 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更高优先级任务到本运行队列。
    • 还有,当某个运行队列上发生调度时,该运行队列
http://www.dtcms.com/a/62846.html

相关文章:

  • 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算法:开启现代密码学的数学之钥
  • SpringMVC中有关请求参数的问题(映射路径,传递不同的参数)
  • 前端小食堂 | Day13 - Vue.js 进阶烹饪术
  • RISC-V特权模式与寄存器
  • 计网面试准备
  • Vue的生命周期
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_conf_param
  • FreeRTOS(7)队列集
  • Redis 主从复制详解:实现高可用与数据备份
  • 【MySQL - 表的内外连接】
  • 【13】单片机编程核心技巧:乘法运算