我们在用pthread创建线程时,可以指定调度策略policy——SCHED_OTHER(默认)、SCHED_RR和SCHED_FIFO。这里TALK一下两个实时策略——SCHED_RR和SCHED_FIFO。

先看一下效果,我们创建了四个子线程,指定最高优先级(针对特定策略):

  • SCHED_RR
  • SCHED_FIFO
对相同优先级的任务,SCHED_RR是分配给每个任务一个特定的时间片,然后轮转依次执行;而SCHED_FIFO则是让一个任务执行完再调度下一个任务,而顺序就是按照创建的先后。
SCHED_RR是根据时间片来调度线程的,当时间片用完时,不管这个线程优先级有多高,都不会在运行,而是进入就绪队列,等待下一个时间片到来。不过图1显示,在thread5798时间片用完时,该线程紧接着进行了一次抢占preemption,又获得了一个时间片。顺便提一句时间片长度的定位是linux凭经验来的,即选择尽可能长、同时能保持良好相应时间的一个时间片。

线程调度策略SCHED_RR(轮转法)和SCHED_FIFO(先进先出)之对比相关推荐

  1. 【Linux 内核】线程调度示例一 ③ ( 获取线程优先级 | 设置线程调度策略 | 代码示例 )

    文章目录 一.获取线程优先级 1.pthread_attr_setschedparam 和 pthread_attr_getschedparam 函数 2.获取线程优先级代码示例 二.设置线程调度策略 ...

  2. 【Linux 内核】进程优先级与调度策略 ③ ( 设置、获取线程优先级的核心函数 | 修改线程调度策略函数 )

    文章目录 一.设置.获取线程优先级的核心函数 二.修改线程调度策略函数 一.设置.获取线程优先级的核心函数 设置.获取 线程 优先级的 核心 函数 : ① 设置 " 创建线程 " ...

  3. 【C++ 语言】线程 ( 线程创建方法 | 线程标识符 | 线程属性 | 线程属性初始化 | 线程属性销毁 | 分离线程 | 线程调度策略 | 线程优先级 | 线程等待 )

    文章目录 I 线程创建方法 II 线程执行函数 III 线程标识符 IV 线程属性 V 线程属性 1 ( 分离线程 | 非分离线程 ) VI 线程属性 2 ( 线程调度策略 ) VII 线程属性 3 ...

  4. 操作系统之进程调度——优先权法和轮转法(附上样例讲解)

    操作系统之进程调度--优先权法和轮转法(附上样例讲解) 操作系统之银行家算法-详解流程及案例数据 操作系统之多线程编程-读者优先/写者优先详解 操作系统之存储管理--FIFO算法和LRU算法 操作系统 ...

  5. 【操作系统】使用C语言实现轮转法进程调度(有代码)

    代码见文章结束处 轮转法实现进程调度思想: 将CPU的处理时间分成固定大小的时间片 按照就绪队列中进程的顺序,调度各进程轮流使用CPU 每个进程执行一个时间片后,就释放CPU,排到就绪队列的末尾,等待 ...

  6. 操作系统-轮转法(时间片轮转法)

    轮转法(时间片轮转法) 简介 在轮转算法中,系统根据先来先服务策略,将所有的就绪进程排成一个就绪队列.并可设置每隔一定的时间间隔即可产生一次中断,激活系统中的进程调度程序,完成一次调度,将CPU分配给 ...

  7. powerworld电力系统仿真,潮流计算,短路计算,电力系统分析。潮流计算对比,牛拉法,PQ分解法对比

    powerworld电力系统仿真,潮流计算,短路计算,电力系统分析.潮流计算对比,牛拉法,PQ分解法对比 编号:1710662437866344电气女博士

  8. linux c 进程策略 优先级,当两个线程拥有相同优先级时,linux c的线程调度策略问题...

    /* critical.c * * compile with gcc critical.c -o critical -lrt -lpthread * * 当主线程和A,B优先级相同时,结果为aaaaa ...

  9. Linux实时调度策略(SCHED_RR)和CFS(SCHED_OTHER)之间的区别

    本文试图从直观角度,说明SCHED_RR调度策略和SCHED_OTHER调度策略之间的区别. 在Linux上,SCHED_OTHER和SCHED_NORMAL的意思相同,它们都是指的CFS调度策略,只 ...

最新文章

  1. wake_lock_timeout的使用方法【转】
  2. php中年月日用什么参数,PHP中date()日期函数参数整理
  3. OVS之vhost-net中VM通信(九)
  4. 意料之外,也是情理之中 - 我的自由职业之旅
  5. 设置elementUI的table组件滚动条位置
  6. 最易忽视的肾虚4件事
  7. Toolbox的Ajax Extensions Tab不见了
  8. 资源重复 uac.res resource kept(转)
  9. 【编译打包】drbd 8.4.2
  10. 华为鸿蒙 os 适配机型曝光,华为鸿蒙OS 2.0首批适配机型曝光
  11. Java 中的 23 种 设 计 模 式
  12. python 类继承 baseclass_Python:Dataclass继承自base Dataclass,如何将值从base升级到新类?...
  13. 如何在DOS系统下删除隐藏的文件
  14. html 加爱心符号,心形符号大全
  15. Matlab 之meshgrid interp griddata interp2
  16. 嵌入式存储设备学习笔记
  17. 统信桌面操作系统V20专业版(1021)发布:稳定又好用
  18. 包教包会—全网最易懂的全加器高位进位和低位进位讲解
  19. SpringBoot集成Swagger2,以及Swagger2常用API
  20. android-pedometer

热门文章

  1. Hadoop是干什么的?
  2. 我们既然选择了远方,便只顾风雨兼程)
  3. 如何解决图片路径是中文名称的问题
  4. Android 开发之Okhttp网络请求日志打印
  5. 导出的 EXCEL 用 office2016 打不开
  6. C语言阿拉伯数字转大写汉字,人民币阿拉伯数字转换为汉字大写 code
  7. java计算机毕业设计我图你秀图片素材交易平台源代码+数据库+系统+lw文档
  8. 微信小程序生命周期(onLoad,onHide,onShow,onReady,onUnload)
  9. 抖音小黄车挂淘宝店相关问题记录
  10. SpringMVC 关于日期(Date)的接收与返回