LWN: OSPM会议上讨论SCHED_DEADLINE和SCHED_RT的路线图

linux系统中调度策略(SCHED_BATCH、SCHED_DEADLINE、SCHED_IDLE、SCHED_FIFO、SCHED_RR、SCHED_OTHER)的介绍 在 Linux 系统中,除了常见的 `SCHED_FIFO`、`SCHED_RR` 和 `SCHED_OTHER` 调度策略外,还有 `SCHED_BATCH`、`SCHED_DEADLINE` 和 `SCHED_IDLE` 等调度策略,它们各自适用于不同的场景。以下是对这些调度策略的介绍以及如何更改它们的方法 阅读详情
640点击上方蓝色字关注我们~



The future of SCHED_DEADLINE and SCHED_RT for capacity-constrained and asymmetric-capacity systems

July 10, 2019



OSPM

译者注:OSPM是刚刚结束的第三届Operating-System-Directed Power-Management summit会议。近期LWN发布了一部分会议议题的讨论。本文正是其中一篇。


Kernel已经有了一个调度策略名为SCHED_DEADLINE,专门用于每个任务都需要在给定的时间期限(deadline)之内来完成的这种实时调度场景。不过,可惜的是SCHED_DEADLINE目前对CPU能力的抽象还太简化,完全没有考虑动态变压变频(DVFS),并发多线程处理(SMT),非对称的CPU能力(例如ARM big.LITTLE),以及各种性能限制策略(例如温度过高时需要限制CPU性能)。

特别是如果要在一个有性能限制策略的系统上执行deadline tasks(需要在给定时间期限内完成的Task)的话,就非常需要理解清楚SCHED_DEADLINE具体能提供什么样的保证。在此次会议中有关于各种方案(weak, hard, or mixed guarantees)的优劣对比。会议上有很多种不同观点,大家最终也没有达成一致,会需要在今年不久之后将会召开的Linux Plumbers Conference上继续探讨。

对移动设备来说,今后因为温度控制等原因进行性能限制会更加平常,因此在这种情况下如何保证性能,会是越来越重要的话题。要提供硬实时保证基本上是不可能的,因为芯片的行为受环境影响很大(例如天气太热)。对目前方案的主要反对观点在于所保证的带宽有点过于保守了。因此SCHED_DEADLINE针对那些需要高带宽的使用场景就可能没法预留足够带宽,哪怕这个task可以允许预留带宽偶尔被占用也不行。


后来这个话题又转移到讨论“tunable granted capacity”的概念(这个概念其实永远都是受限于合理的工作条件前提下的)以及一个最大的“best-effort capacity”。这样模型就能让SCHED_DEADLINE把各个task分为两类不同的服务对象,这样就能知道哪些task会更无法忍受CPU资源减少之后导致的错过deadline。不过这种方案会让kernel里的admission-control policy更加复杂。还有一种可能的策略就是让kernel内部admission control尽量简单,但是在user space增加一些特权用户可以使用的、更加高级的admission-control policy。


此外在现代的移动平台上对SCHED_DEADLINE还有多个方面的改善。Luca Abeni提供的"Capacity awareness for SCHED_DEADLINE" RFC patch set能够对非对称CPU能力的场景下提供基本功能。还有一些需要更长周期完成的工作,例如探索是否可能让在做admission control判断的时候能根据硬件或者固件所能提供的性能指标来决策,还有引入energy-aware task在deadline scheduler里的支持。


关于realtime scheduling class (SCHED_RT),在移动设备上使用的话也有一些问题。Linux mainline代码里会缺省把RT任务放在拥有最多空闲计算能力的CPU上去执行,这个方案有些太极端,有点浪费。SCHED_RT也假设CPU的计算能力全部都是对称的,此外它还不会参考当前running或者runnable的CFS进程情况来做决策。


SCHED_RT也就跟SCHED_DEADLINE一样,需要做一些改进才能在现代移动平台上更加实用。已经合入了一个utilization clamping patch set(会包含在Linux 5.3),它可以采用per-task, per-task-group或者系统全局的performance上限限制来对各个CPU的频率进行更细粒度的决策。此外还有一些其他改进,例如让SCHED_RT能在非对称的CPU能力的系统上,根据每个CPU的计算能力来预测可以获得的性能提升,又或者让SCHED_RT也和CFS task能互相考虑,从而实现更好的调度策略。


全文完

LWN文章遵循CC BY-SA 4.0许可协议。

极度欢迎将文章分享到朋友圈 
热烈欢迎转载以及基于现有协议上的修改再创作~


长按下面二维码关注:Linux News搬运工,希望每周的深度文章以及开源社区的各种新近言论,能够让大家满意~


640?wx_fmt=jpeg

调度相关介绍 简要介绍Linux调度相关的一些知识 阅读详情

相关推荐

【 实时Linux实战系列】SCHED_DEADLINE 调度策略入门

SCHED_DEADLINE是Linux内核的一种实时调度策略,专为周期性任务提供严格时间保证。基于CBS模型,它允许开发者设定任务周期(Period)、截止时间(Deadline)和运行时间(Runtime),确保任务在规定时间内完成。本文通过代码示例(如配置10ms运行时间/100ms周期)演示如何应用该策略,并解答常见问题(如启用方法和参数设置)。最佳实践包括定期验证配置和结合多种调度策略,适用于需要高实时性的场景,如嵌入式系统。

望获实时Linux系统 1203

SCHED_DEALINE调度类分析(一)

以下是本人分析的内核新的调度类SCHED_DEADLINE调度类,这个调度类没有进主线之前叫EDF(Earliest DeadlineFirst)。在3.14的内核时进入了主线。本文是基于没有进主线之前的分析。思想基本一致。 EDF介绍 EDF(Earliest DeadlineFirst)它是一种最早到期优先的调度算法。当前Linux内核中使用的调度的算法是主要是cfs和fifo调度类,但是这

xiaofeng_yan的专栏 5658

Linux实时任务调度指南:SCHED_DEADLINE在嵌入式系统中的5个典型应用场景

本文深入探讨了Linux内核的SCHED_DEADLINE实时调度策略在嵌入式系统中的五大关键应用场景。通过机器人运动控制、高保真音频处理、工业PLC通信、自动驾驶传感器融合及高频交易等实例,详细阐述了如何配置与优化该策略,以确保时间敏感型任务在严格截止时间前完成,为构建高确定性系统提供实践指南。

weixin_29206669的博客 351

进程线程(四) Deadline调度、实时性和多核负载均衡

Linux Deadline调度器(全新内容) Linux为什么不是硬实时的 preempt-rt对Linux实时性的改造 多核下负载均衡 中断负载均衡、RPS软中断负载均衡

只有自己觉到悟到的,才是自己的。 2912

Linux操作系统的实时化-PREEMPT_RT

总体而言,Linux PREEMPT-RT通过提供更好的抢占能力、改进锁机制、优化调度策略和中断处理等方式,显著提升了Linux内核在实时应用场景下的表现。这使得Linux系统能够更好地适应实时性要求较高的应用,如工控系统、嵌入式实时控制、机器人控制等领域。与此同时,Linux PREEMPT-RT与Linux主干同步开发的方式,也是基于Linux PREEMPT-RT的实时系统继承了Linux操作系统丰富的应用生态和平台可移植性。

望获实时Linux系统 3184

ST7789驱动实战:从SPI时序到RGB565显示的完整配置解析

本文详细解析了ST7789液晶驱动芯片的SPI时序配置与RGB565显示实现,从数据手册解读到代码实战,涵盖SPI接口配置、关键寄存器设置及完整初始化流程。通过优化DMA传输和常见问题排查,帮助开发者高效驱动ST7789显示屏,适用于嵌入式显示项目开发。

weixin_29162439的博客 183

C语言与软实时系统设计:SCHED_DEADLINE调度策略、实时性评估与优化(二)

在Linux系统中,使用SCHED_DEADLINE调度策略可以通过一系列的C语言API进行设置和查询。这些API主要包括sched_setattr(), sched_getattr(), 以及相关的结构体定义。

weixin_56154577的博客 1152

QGIS v3.28 高效加载OSM在线地图的三种实用方法

本文详细介绍了在QGIS v3.28中高效加载OSM在线地图的三种实用方法:通过XYZ Tiles直接连接、使用QuickMapServices插件以及配置WMS/WTMS服务。针对每种方法提供了具体操作步骤、常见问题解决方案和性能优化建议,帮助用户根据需求选择最适合的方案,提升GIS工作效率。

weixin_29233333的博客 433

C语言与软实时系统设计:SCHED_DEADLINE调度策略、实时性评估与优化(一)

C语言作为一款简洁高效、贴近底层的编程语言,其在软实时系统设计中扮演着至关重要的角色。软实时系统要求在规定时间内响应外部事件或完成特定任务,虽不像硬实时系统那样对时间约束严格到绝对不可违背的程度,但对时间敏感性的要求依然很高。

weixin_56154577的博客 1145

使用ONNX Runtime在Java Web应用中部署深度学习模型

当应用场景需要集成深度学习模型进行推理时,直接在Java Web应用中集成深度学习框架可能会面临性能、兼容性等问题。为了将深度学习模型无缝集成到Java Web应用中,是一项广受认可且实用的方法。本篇文档将介绍如何将模型转换为ONNX格式,并通过ONNX Runtime Server进行部署,并通过Java Web应用调用以进行回归或预测任务。本方案的主要目标是实现以下功能:将PyTorch模型转换为ONNX格式。部署ONNX Runtime Server,加载ONNX模型并提供推理服务。

shysea2019的博客 8857

基于STM32的智能鞋柜系统设计与实现

摘要:本文设计并实现了一种基于STM32F103C8T6单片机的智能鞋柜系统。该系统通过DHT11温湿度传感器、PM2.5粉尘传感器和MQ-135空气质量传感器构建多维度环境监测网络,结合光电红外传感器和光敏传感器实现柜门状态识别与智能照明。系统采用分层控制策略,当温度低于15℃或湿度高于65%时自动启动加热和通风,PM2.5超标时启动通风,污染物浓度升高时激活紫外线杀菌。创新性地实现了柜门状态与紫外线消毒的双保险互锁机制,确保使用安全。测试结果表明,系统温湿度控制精度达±0.4℃/±2.0%RH,PM2.

3254968421的博客 252

deadline调度器

内核调度器-deadline

chensong_2000的博客 1999

Xiaojie雷达之路---手把手教你从串口获取雷达原始数据(一)---新建工程(开始)

Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,Xiaojie准备连载一个系列的文章---利用串口获取毫米波雷达中的原始数据,本系列文章将从新建工程到最后原始数据显示到PC上进行逐步介绍,这个系列的文章大约是一个4-5篇左右。本篇文章呢,主要讲的是如何新建一个毫米波雷达的工程。

XiaoJie的博客 5810

[Linux]学习笔记系列 -- [kernel][sched]deadline

本文介绍了Linux内核中的截止时间调度器(Deadline Scheduler,SCHED_DEADLINE),它是面向硬实时的可预测调度机制。该调度器通过最早截止时间优先(EDF)算法和恒定带宽服务器(CBS)算法,解决了传统实时调度器在复杂系统中的局限性,如缺乏可分析性和任务间隔离问题。SCHED_DEADLINE允许用户为每个任务指定runtime、period和deadline三个参数,通过形式化分析确保任务满足截止时间要求。它适用于实时虚拟化、工业自动化、多媒体流处理等场景,但不推荐用于通用计算

wdfk-prog.space 1227

YOLO26跨时代升级!YOLO26 MLCA注意力机制解读

摘要: 本文提出了一种基于多级上下文聚合(MLCA)注意力机制的改进卷积神经网络。MLCA模块通过局部和全局注意力机制动态调整特征图权重,结合了ECA注意力与自适应池化,显著提升特征表达能力。实验表明,添加MLCA后模型mAP提升12.11,准确率提高5.43。文中详细解析了MLCA1模块的工作原理,包括局部/全局池化、卷积操作和注意力加权机制,并介绍了集成MLCA的Bottleneck_MLCA模块。该机制通过多层次特征融合,在保持计算效率的同时增强模型对关键特征的敏感性。最后提供了YOLOv26-MLC

m0_71589036的博客 282

YOLO11改进 | 注意力机制 | 添加SimAM注意力机制【全网独家+附完整代码】

yolo11,yolo11改进,yolo11创新,yolo11添加注意力机制

kay_545 1229

C语言与软实时系统设计:SCHED_DEADLINE调度策略、实时性评估与优化(三)

在实时系统中,为了满足严格的响应时间要求,常常需要对系统进行多方面的优化。下面将分别探讨系统层面、代码层面以及SCHED_DEADLINE参数调优的实时性优化策略与技巧。

weixin_56154577的博客 909

Halcon算子知识:optical_flow_mg

光流(Optical Flow)是一种研究图像对齐的算法,一般包括两大类:稀疏光流和稠密光流。稀疏光流就是研究图像中稀疏点的光流,这些点一般是角点;稠密光流则是研究图像中所有点的偏移量。以下介绍halcon的基本光流算子optical_flow_mg的原理方法。该算子计算两个图片的光流法。 二、算子说明 optical_flow_mg(ImageT1, ImageT2 : VectorField : Algorithm, SmoothingSigma, Integration

gongdiwudu的专栏 1万+

【linux kernel】linux内核的进程调度—调度策略

linux内核的进程调度—调度策略 (注:下文代码片段均出自linux内核版本4.1.15) 文章目录linux内核的进程调度—调度策略一、调度策略(1-1)stop调度策略(1-2)deadline调度策略(1-3)realtime调度策略(1-4)CFS调度策略(1-5)idle调度策略二、调度时刻三、执行调度 在linux内核中,默认实现了5种调度策略: (1)stop调度策略 (2)deadline调度策略 (3)realtime调度策略 (4)CFS调度策略 (5)idle调度策略 以上5种调度策

iriczhao的博客 4676

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Linux内核进程调度

CFS在Linux2.6.23之后,内核默认的调度器是CFS,也就是”Completely Fair Scheduler”。这个调度器替换了早先的o(1)调度器。APILinux提供了下面的系统调用来控制CPU调度的行为、策略和线程优先级。 nice:为调用线程设置一个nice值,并返回新的nice值。 getpriority:返回一个线程,或一个进程组,或一个特定用户的线程集合的nice值。 se

Meows的牧场 2397

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Linux任务调度探秘(续):截止时间调度器(DL)

• 在 task_tick_dl 中调用:task_tick_dl 是调度器的周期性回调,由内核时钟中断定期触发,因此 update_curr_dl 会按固定时间粒度(通常为 tick 或高精度定时器)更新 runtime 消耗,实现基于时钟周期的精确计费。例如,在大小核架构中,大核和小核即使执行相同的时间,实际完成的工作量也不同。• 通过更新当前任务函数(update_curr_dl)与时钟滴答函数(task_tick_dl),剖析运行时间(runtime)的计费机制、周期重置逻辑以及限流的实现原理。

advdbgger的博客 1119

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Linux Deadline 调度器 - 第一部分:简介与理论背景

本文来自“内核月谈”公众号原文链接:https://lwn.net/Articles/743740/ 导语:实时系统是一类必须在精确的时间限制内作出响应事件的系统,在这样...

Linux阅码场 1531

Linux进程核心调度器之主调度器schedule--Linux进程的管理与调度(十九)

日期 内核版本 架构 作者 GitHub 优快云 2016-06-30 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 我们前面提到linux有两种方法激活调度器:核心调度器和 一种是直接的, 比如进程打算睡眠或出于其他原因放弃CPU 另一种是通过周期性的机制, 以固定的频率运行, 不

OSKernelLAB(gatieme) 1万+

Linux Deadline 调度器的动态参数调整:运行时的参数更新

Linux Deadline调度器动态参数调整技术解析 摘要:本文深入剖析Linux SCHED_DEADLINE调度策略的动态参数调整机制。该机制允许在任务运行时实时修改runtime、deadline、period三大核心参数,无需重启进程或中断业务。文章从内核实现角度详细讲解了动态调参的工作原理,包括带宽管理机制、可调度性检查算法(要求总CPU利用率不超过100%)、以及关键内核数据结构sched_attr和sched_dl_entity。通过实际代码示例演示了如何在用户态创建DL任务并进行运行时参数

望获实时Linux系统 177

Linux Deadline 调度器的 sched_setattr:Deadline 参数配置

Linux内核中的SCHED_DEADLINE调度策略为工业控制、自动驾驶等硬实时场景提供了确定性保障。本文详细解析了其核心机制:基于EDF算法和CBS带宽控制,通过专属系统调用sched_setattr配置runtime/deadline/period三大参数。文章包含概念解析、环境配置、C语言实现案例、命令行工具使用、内核跟踪方法及常见问题解答,为开发者提供从理论到实践的完整指导。重点强调了参数约束规则(runtime≤deadline≤period)和权限要求(CAP_SYS_NICE),并给出了调试

望获实时Linux系统 179

Linux Deadline 调度器的参数验证:内核对三参数的合法性检查

摘要:本文深入解析Linux内核中SCHED_DEADLINE实时调度策略的参数校验机制。该策略基于EDF算法,广泛应用于工业控制、自动驾驶等硬实时场景。内核通过sched_dl_validate函数强制校验三个核心参数(Runtime、Deadline、Period)必须满足:非零值、Deadline≥Runtime、Period≥Deadline。文章详细剖析了内核源码实现,提供了可编译运行的测试程序演示合法/非法参数设置效果,并介绍了使用dmesg和ftrace跟踪校验过程的方法。最后给出了工程实践建

望获实时Linux系统 175
上一篇: LWN:Linux讨论新加syscall (clone3, fchmodat4, fsinfo)
下一篇: LWN: OSPM会议讨论如何测试scheduler行为
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值