线程调度策略:设置SCHED_FIFO与SCHED_RR优先级

梦墨吖_5235

梦墨吖_5235

2026-07-06

303人浏览

原创

linux中设置sched_fifo或sched_rr本质是启用实时调度,需root权限或cap_sys_nice能力,须禁用继承机制,优先级1–99(越大越高),fifo适合硬实时,rr适合软实时。

线程调度策略:设置sched_fifo与sched_rr优先级

Linux 中设置线程调度策略为 SCHED_FIFOSCHED_RR,本质是启用实时调度能力,并配合静态优先级(1–99)控制执行顺序。这两者都属于实时策略,但行为差异明显,设置时需注意权限、继承关系和核心绑定等关键点。

Designs.ai
Designs.ai

Designs.ai是一款集合 Logo、视频、文案、设计和语音能力的 AI 创意平台。

下载

必须用 root 权限才能提升优先级

普通用户默认只能降低自己的 nice 值(对 `SCHED_OTHER`),但无法设置 `SCHED_FIFO`/`SCHED_RR` 或提高实时优先级。系统限制要求: - 调用 `pthread_setschedparam()` 或 `sched_setscheduler()` 设置实时策略时,进程需具备 `CAP_SYS_NICE` 能力; - 通常意味着以 root 运行,或通过 `sudo setcap cap_sys_nice+ep ./your_program` 授予权限; - 若未获权限,函数返回 -1 并设 `errno = EPERM`。

设置前要显式关闭继承机制

新线程默认继承创建者的调度策略和参数。若想自定义 `SCHED_FIFO` 或 `SCHED_RR`,必须先禁用继承: - 调用 `pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED)`; - 否则即使设置了 policy 和 priority,也会被忽略; - 这一步常被遗漏,导致看似配置成功,实则线程仍跑在 `SCHED_OTHER` 下。

优先级范围与策略匹配

`SCHED_FIFO` 和 `SCHED_RR` 共享同一套优先级数值体系: - 有效值为 1 到 99,**数字越大,优先级越高**; - 可用 `sched_get_priority_min()` / `sched_get_priority_max()` 查询当前策略支持的范围; - 示例:`struct sched_param param = {.sched_priority = 80};`; - 注意:`SCHED_OTHER` 不使用该字段,它依赖 `nice` 值(-20 ~ +19),二者不可混用或直接比较。

策略选择影响线程行为

选 `SCHED_FIFO` 还是 `SCHED_RR`,取决于任务对确定性和公平性的权衡: - `SCHED_FIFO`:同优先级下先到先服务,一旦运行就独占 CPU,直到阻塞、退出或被更高优先级抢占;适合硬实时场景(如传感器采样); - `SCHED_RR`:同优先级线程按固定时间片(通常 10–100ms)轮转,避免单一线程长期霸占 CPU;适合多路音视频处理等软实时任务; - 两者都可被更高优先级实时线程抢占,且始终高于所有 `SCHED_OTHER` 线程。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3570

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3113

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2153

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5130

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

4822

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

2893

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2405

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2619

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.1万人学习