美文网首页
Linux进程调度

Linux进程调度

作者: sk邵楷 | 来源:发表于2022-07-25 21:24 被阅读0次

    linux调度类:
    一共有5个调度类, 每个进程都对应一种调度策略, 每种策略又会对应一种调度类(每个调度类可以对应多种调度策略)
    extern const struct sched_class stop_sched_class;
    extern const struct sched_class dl_sched_class;
    extern const struct sched_class rt_sched_class;
    extern const struct sched_class fair_sched_class;
    extern const struct sched_class idle_sched_class;

    rt_sched_class: 实时调度器(调度策略: SCHED_FIFO, SCHED_RR)
    fair_sched_class: 完全公平调度器(调度策略: SCHED_NORMAL, SCHED_BATCH, SCHED_IDLE)

    调度类优先级顺序: stop_sched_class>dl_sched_class>rt_sched_class>fair_sched_class>idle_sched_class

    调度策略:
    struct task中 unsigned int policy 保存进程的调度策略
    SCHED_NORMAL: 用于普通进程, 通过CFS调度器实现
    SCHED_BATCH: 相当于SCHED_NORMAL分化版本, 采用分时策略, 根据动态优先级, 分配CPU运行需要的资源
    SCHED_IDLE: 优先级最低, 在系统空闲时才执行这类进程
    SCHED_FIFO: 先进先出调度算法(实时调度策略), 相同优先级任务先到先服务, 高优先级的任务可以抢占低优先级的任务.
    SCHED_RR: 轮流调度算法(实时调度策略)
    SCHED_DEADLINE: 新支持的实时进程调度策略, 针对突发性计算
    SCHED_BATCH用于非交互处理器消耗型进程, SCHED_IDLE是在系统负载很低时使用CFS
    /*

    • Scheduling policies
      */

    define SCHED_NORMAL 0

    define SCHED_FIFO 1

    define SCHED_RR 2

    define SCHED_BATCH 3

    /* SCHED_ISO: reserved but not implemented yet */

    define SCHED_IDLE 5

    define SCHED_DEADLINE 6

    CFS调度
    CFS调度器(1)—— 基本原理
    https://www.cnblogs.com/hellokitty2/p/13171709.html
    CFS调度器(2)——源码解析
    http://t.zoukankan.com/hellokitty2-p-13195256.html
    linux内核源码分析之CFS调度
    https://blog.csdn.net/WANGYONGZIXUE/article/details/123456109
    带你玩转linux内核源码分析之CFS调度
    https://www.bilibili.com/read/cv16902712
    Linux进程调度-CFS调度器原理分析及实现,懂了
    https://zhuanlan.zhihu.com/p/395810060
    操作系统调度算法3——CFS,完全公平调度器
    https://zhuanlan.zhihu.com/p/372441187

    Linux进程调度源码学习之调度策略与调度类工作流程
    https://blog.csdn.net/xsjzn/article/details/124721909

    相关文章

      网友评论

          本文标题:Linux进程调度

          本文链接:https://www.haomeiwen.com/subject/fitwirtx.html