美文网首页
Linux 调度

Linux 调度

作者: 技术灭霸 | 来源:发表于2021-07-24 21:18 被阅读0次
  • 调度策略与调度类
  • 进程包括两类: 实时进程(优先级高); 普通进程
  • 两种进程调度策略不同: task_struct->policy 指明采用哪种调度策略(有6种策略)
  • 优先级配合调度策略, 实时进程(0-99); 普通进程(100-139)

实时调度策略, 高优先级可抢占低优先级进程

  • FIFO: 相同优先级进程先来先得
  • RR: 轮流调度策略, 采用时间片轮流调度相同优先级进程
  • Deadline: 在调度时, 选择 deadline 最近的进程

普通调度策略

  • normal: 普通进程
  • batch: 后台进程, 可以降低优先级
  • idle: 空闲时才运行

调度类: task_struct 中 * sched_class 指向封装了调度策略执行逻辑的类(有5种)

  • stop: 优先级最高. 将中断其他所有进程, 且不能被打断
  • dl: 实现 deadline 调度策略
  • rt: RR 或 FIFO, 具体策略由 task_struct->policy 指定
  • fair: 普通进程调度
  • idle: 空闲进程调度
  • 普通进程的 fair 完全公平调度算法 CFS(Linux 实现)
  • 记录进程运行时间( vruntime 虚拟运行时间)
  • 优先调度 vruntime 小的进程
  • 按照比例累计 vruntime, 使之考虑进优先级关系
  • 调度队列和调度实体
  • CFS 中需要对 vruntime 排序找最小, 不断查询更新, 因此利用红黑树实现调度队列
  • task_struct 中有 实时, deadline 和 cfs 三个调度实体, cfs 调度实体即红黑树节点
  • 每个 CPU 都有 rq 结构体, 里面有 dl_rq, rt_rq 和 cfs_rq 三个调度队列以及其他信息; 队列描述该 CPU 所运行的所有进程
  • 先在 rt_rq 中找进程运行, 若没有再到 cfs_rq 中找; cfs_rq 中 rb_root 指向红黑树根节点, rb_leftmost指向最左节点

调度类如何工作

  • 调度类中有一个成员指向下一个调度类(按优先级顺序串起来)
  • 找下一个运行任务时, 按 stop-dl-rt-fair-idle 依次调用调度类, 不同调度类操作不同调度队列

进程上下文切换

上下文切换主要干两件事情,一是切换进程空间,也即虚拟内存;二是切换寄存器和CPU上下文


image.png

相关文章

  • Linux内核学习013——进程调度(二)

    Linux内核学习013——进程调度(二) Linux的进程调度 早期版本(1~2.4)的Linux内核中,调度程...

  • Linux内核学习014——进程调度(三)

    Linux内核学习014——进程调度(三) Linux调度算法 在Linux中,调度器是以模块方式提供的,这样可以...

  • linux中的调度

    linux系统的线程是内核线程,所以linux系统的调度是基于线程而不是基于进程的 为了进行调度,linux系统将...

  • 13. Oozie介绍

    1. Hadoop常见调度框架: (1)Linux Crontab:Linux自带的任务调度计划,在任务比较少的情...

  • Linux下优化Mysql的运行环境

    修改Linux默认的IO调度算法 linux默认的IO调度算法为cfq,需要修改为dealine,如果是SSD或者...

  • 打通Framework与Kernel-谈谈我对进程管理的理解

    Kernel:Linux学习-进程管理与调度(一)-进程描述及其生命周期Linux学习-进程管理与调度(二)-进程...

  • Linux 调度

    调度策略与调度类 进程包括两类: 实时进程(优先级高); 普通进程 两种进程调度策略不同: task_struct...

  • linux定时任务

    一 、简介 Linux下的任务调度分为两类,系统任务调度和用户任务调度 系统任务调度:系统需要定期执行的任务,比如...

  • Linux主要特性

    Linux教程 Linux主要特性 Linux优点 模块化程度高 Linux的内核设计非常精巧,分成进程调度、内存...

  • 设置Linux进程的优先级

    Linux内核的三种调度策略: SCHED_OTHER 分时调度策略, SCHED_FIFO实时调度策略,先到先服...

网友评论

      本文标题:Linux 调度

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