"Sched: RT throttling activated" 是 Linux 内核中实时调度策略(Real-time scheduling policy)中的一条消息。它通常在内核日志中被打印出来,表示实时进程(Real-time process)的执行时间超过了其预定的时间片(time slice),因此内核将会对该进程进行抑制(throttling)以保证系统的稳定性和可靠性。

当一个实时进程的执行时间超过了其预定的时间片时,内核会通过调整该进程的时间片或者暂停该进程的执行来防止它对系统造成不必要的负载。这就是所谓的“实时调度策略中的抑制(throttling)”。当内核对实时进程进行抑制时,它会打印出“Sched: RT throttling activated”的消息以表明该行为。

实时进程(Real-time process)是指在特定时间限制内需要完成某些任务的进程。这些进程需要在固定的时间段内完成任务,否则就会影响到系统的正常运行。实时进程通常需要优先级较高、执行时间较短、响应时间较快、可靠性较强。

在 Linux 系统中,实时进程通常使用实时调度策略(Real-time scheduling policy)来保证其响应和执行时间的可靠性和稳定性。实时进程可以通过使用调度策略API(sched_setscheduler()函数)来指定实时调度策略,例如 SCHED_FIFO 和 SCHED_RR。这些策略都有自己的调度算法和优先级规则,以确保实时进程可以按照预定的时间段内完成任务,并且不会被其他低优先级进程所干扰。

与之相反的是,非实时进程(Non-real-time process)则不需要在特定的时间限制内完成任务,可以按照系统的默认调度策略进行调度。非实时进程的执行时间和响应时间相对较长,通常用于一些不需要实时响应的任务,例如批处理、数据处理等

在 Linux 系统中,创建一个实时进程需要以下步骤:

  1. 使用实时调度策略 在创建进程时,需要使用 sched_setscheduler() 函数来指定实时调度策略。实时调度策略有多种,例如 SCHED_FIFOSCHED_RR 等。

  2. 设置进程的优先级 进程的优先级越高,就越容易获得 CPU 时间片。可以使用 sched_param() 函数来设置进程的优先级。

  3. 分配 CPU 核心 实时进程需要获得足够的 CPU 时间片才能完成任务,因此需要将其分配到独立的 CPU 核心上,以避免被其他进程所干扰。

下面是一个使用 SCHED_FIFO 实时调度策略创建实时进程的示例代码:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sched.h>#define MY_PRIORITY (49) /* 定义实时进程的优先级 */
#define MAX_ITER (10000000) /* 定义实时进程的执行次数 */int main(int argc, char *argv[]) {struct sched_param my_params;int i, j;/* 设置实时调度策略 */if (sched_setscheduler(0, SCHED_FIFO, &my_params) == -1) {perror("sched_setscheduler failed");exit(EXIT_FAILURE);}/* 设置进程的优先级 */my_params.sched_priority = MY_PRIORITY;if (sched_setparam(0, &my_params) == -1) {perror("sched_setparam failed");exit(EXIT_FAILURE);}/* 分配 CPU 核心 */cpu_set_t my_set;CPU_ZERO(&my_set);CPU_SET(0, &my_set);if (sched_setaffinity(0, sizeof(cpu_set_t), &my_set) == -1) {perror("sched_setaffinity failed");exit(EXIT_FAILURE);}/* 执行实时进程的任务 */for (i = 0; i < MAX_ITER; i++) {j += i;}return 0;
}

以上示例代码创建了一个实时进程,使用 SCHED_FIFO 实时调度策略、优先级为 49,并分配到 CPU 核心 0 上运行。进程的任务是执行一个累加操作,共执行 10000000 次。这个示例代码仅供参考,实际使用时需要根据具体情况进行修改和优化。

Sched: RT throttling activated相关推荐

  1. RT throttling分析

    转载地址:https://www.aliyun.com/jiaocheng/1389159.html 摘要:Linux上调度策略为SCHED_FIFO的实时进程是根据优先级抢占运行的.当没有更高优先级 ...

  2. RT throttling分析【转】

    转自:https://blog.csdn.net/u012728256/article/details/72639612 Linux上调度策略为SCHED_FIFO的实时进程是根据优先级抢占运行的.当 ...

  3. cpu进程调度---RT Throttling【转】

    转自:http://book.2cto.com/201302/16291.html RT Throttling是对分配给实时进程的CPU时间进行限制的功能.使用实时调度策略的进程由于bug等出现不可控 ...

  4. Linux进程调度 - 实时调度器 LoyenWang

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  5. Linux schedule 2、调度算法

    2.调度算法 linux进程一般分成了实时进程(RT)和普通进程,linux使用sched_class结构来管理不同类型进程的调度算法:rt_sched_class负责实时类进程(SCHED_FIFO ...

  6. Linux进程管理 (9)实时调度类分析,以及FIFO和RR对比实验

    关键词:rt_sched_class.SCHED_FIFO.SCHED_RR.sched_setscheduler().sched_setaffinity().RR_TIMESLICE. 本文主要关注 ...

  7. ARM 看门狗机制 [包括MTK] 【1】

    watchdog一般是一个硬件模块(其实可以当做是一个定时器),其作用是,在嵌入式操作系统中,很多应用情况是系统长期运行且无人看守,导致程序跑飞,所以难免怕万一出现系统死机,那就悲剧了,这时,watc ...

  8. 一次mmc0: Timeout waiting for hardware interrupt问题分析过程

    1.单板环境 xilinx zynq7z15 soc,Arm cortex A9双核.外设:mmc.emmc.spi.qspi.i2c.gpio.can.uart.cdns-gem(网口).dsp.u ...

  9. linux sched init简介

    调度器的初始化,前面的android 开机流程讲过,uboot(bootloader)执行完一些初始化动作后,会将kernel加载到内存,然后跳到kernel. kernel在执行完一段汇编代码,准备 ...

最新文章

  1. RANet : 分辨率自适应网络效果和性能的best trade-off | CVPR 2020
  2. Leangoo 6.2.6 版发布
  3. 专利实力论互联网巨头造车:中美格局初定,百度苹果跨洋辉映
  4. Java与C底层数据类型转换
  5. java和C++之单例类双重检查加锁
  6. Android 性能优化:使用 Lint 优化代码、去除多余资源,减少APP的size
  7. python0不能做除数、怎么解决_为什么不能用 0 做除数?
  8. 博文视点大讲堂41期-SEO难点之网站内部链接结构
  9. 如何复制百度文库中需要收费的文字
  10. 学会编单片机必须会c语言吗,十天学会单片机和C语言编程.docx
  11. 一元线性拟合的matlab,基于MATLAB的一元线性回归分析
  12. [LeetCode]347. 前 K 个高频元素
  13. MongoDb进阶实践之七 MongoDB的索引入门
  14. BUUCTF Reverse/findKey
  15. 使用tinyxml2库解析xml
  16. Order-Preserving Encoding(OPE 保序加密)
  17. 开源OkHttpUtils升级版OkGo,完美支持RxJava
  18. C语言和C++的文件读取、写入函数
  19. 免费学习的Linux主机
  20. 域名dns 域名dns解析查询

热门文章

  1. 金融素养提升活动 | 第八届东方财富杯全国大学生金融挑战赛启动
  2. 扫地机器人作文说明文提纲_关于物品的说明文:扫地机器人的自述
  3. IONIC4 苹果登录-Sign In With Apple Id
  4. 关于Ilegal assignment(Quart II)问题的解决
  5. 南昌大学计算机学硕和专硕,南昌大学同等学力是专硕还是学硕
  6. 网站访客QQ获取系统
  7. 天池比赛——docker初步尝试
  8. 自然语言处理与模型评价
  9. WinInet使用详解
  10. 在单面打印机上使用WPS实现手工双面打印