当前位置: 首页 > news >正文

Liunx 实时调度策略 SCHED_RR SCHED_FIFO 区别 适用情况

SCHED_RR SCHED_FIFO 适用情况

SCHED_FIFO

  • 先进先出调度。
  • 只能在静态优先级高于0的情况下使用,这意味着当 SCHED_FIFO 线程变得可运行时,它总是立即抢占当前正在运行的任何 SCHED_OTHER、SCHED_BATCH 或 SCHED_IDLE 线程。
  • SCHED_FIFO 线程一直运行到被 I/O 请求阻塞、被高优先级线程抢占或调用 sched_yield 为止。
  • SCHED_FIFO 是一种简单的调度算法,没有时间切片。对于 SCHED_FIFO 策略下调度的线程,应用以下规则:
    • 被另一个高优先级线程抢占的正在运行的 SCHED_FIFO 线程将保持在其优先级列表的头部,并在所有高优先级线程再次阻塞时立即恢复执行。
    • 当阻塞的 SCHED_FIFO 线程变为可运行时,它将被插入到优先级列表的末尾。

SCHED_RR

  • 循环调度。
  • SCHED_RR 是 SCHED_FIFO 的简单增强。上面为 SCHED_FIFO 描述的所有内容也适用于 SCHED_RR,除了每个线程只允许在最大时间片内运行。
  • 如果 SCHED_RR 线程已经运行了等于或大于该时间片的时间段,那么它将被放在优先级列表的末尾。
  • 被高优先级线程抢占并随后作为运行线程恢复执行的 SCHED_RR 线程将完成其循环时间量的未过期部分。

分析

  • 假设在 cpu0 上存在以下3个线程:

    线程名优先级调度策略
    t0highFIFO 或 RR
    t1midFIFO 或 RR
    t30OTHER
  • 假设 t0 和 t1 使用 FIFO 策略,则只要 t0 线程就绪,就会立刻抢占 t1 和 t3,直到 t0 主动放弃 cpu 为止,t1 或者 t3 才会被运行。

  • 假设 t0 和 t1 使用 RR 策略,与 FIFO 的区别就是,t0 线程在使用完时间片以后,会发生一次调度, 此时 t0 仍然是 cpu0 上优先级最高的线程,其会再次获得运行。也就是说,只要 t0 不主动放弃 cpu,其会一直运行。和 FIFO 一致,但是多了额外的开销。

  • 假设 t0 和 t1 优先级一致,在使用 FIFO 策略的情况下,如果 t0 先运行,那么 t1 只有等到 t0 主动放弃 cpu,才会得到运行。在使用 RR 策略的情况下,如果 t0 先运行,t1 在 t0 时间片消耗完之后便可得到运行。

SCHED_FIFO 适用情况

  • 在设置 cpu 亲和性的情况下,如果在同一个核心上只存在一个同优先级线程,则应使用 SCHED_FIFO。
  • 在不设置 cpu 亲和性的情况下,如果同优先级线程数小于或等于 cpu 总核心数,则应使用 SCHED_FIFO。

SCHED_RR 适用情况

  • 在设置 cpu 亲和性的情况下,如果在同一个核心上需要绑定一个以上的同优先级线程,则应使用 SCHED_RR。
  • 在不设置 cpu 亲和性的情况下,如果同优先级线程数超过 cpu 总核心数,则应使用 SCHED_RR。
http://www.lryc.cn/news/205289.html

相关文章:

  • mac上使用虚拟机vm, 里面的镜像挂起会占用电脑的内存吗, 挂起和关机的区别是什么, 会影响正常电脑的内存和硬盘使用吗
  • AIGC时代 浪潮信息积极推动存储产品创新
  • 【PG】PostgreSQL字符集
  • 力扣:137. 只出现一次的数字 II(Python3)
  • orb-slam3编译手册(Ubuntu20.04)
  • 升级 Xcode 15模拟器 iOS 17.0 Simulator(21A328) 下载失败
  • PHP 函数、PHP 简单后门
  • 前端实现菜单按钮级权限
  • STM32:TTL串口调试
  • 【Jenkins 安装】
  • JVM——GC垃圾回收器
  • 【三维重建-PatchMatchNet复现笔记】
  • CSS - 常用属性和布局方式
  • 数据结构与算法之矩阵: Leetcode 134. 螺旋矩阵 (Typescript版)
  • LVS+keepalived高可用负载均衡集群
  • 解密Kubernetes:探索开源容器编排工具的内核
  • 苹果手机怎么设置壁纸?解锁设置壁纸的2种方法!
  • 解决LOGITECH 罗技驱动 MAC版出现的一些问题汇总!
  • PyQt5入门4——给目标检测算法构建一个简单的界面
  • Pandas数据分析系列9-数据透视与行列转换
  • 部分背包问题细节(贪心)
  • windows协议详解之-RPC/SMB/LDAP/LSA/SAM域控协议关系
  • uniapp中 background-image 设置背景图片不展示问题
  • Elasticsearch打分机制
  • 【pdf密码】为什么我的PDF文件不能复制文字?
  • vim程序编辑器
  • 新手如何学习挖漏洞?看这篇就够了【网络安全】
  • CentOS 7.8 kubeadm安装 k8s 1.26
  • 成都瀚网科技有限公司抖音小店:创新营销引领电商潮流
  • 警惕!又2本期刊被“On Hold”!