嵌入式每日八股3.1

Linux内核的调度策略有哪些?

alt

Linux内核提供了多种调度策略,常用的调度策略有以下几种:

  1. 限期进程使用限期调度策略(SCHED_DEADLINE) ;
  2. 实时进程支持两种调度策略(先进先出调度策略SCHED_FIFO,轮流调度策略SCHED_RR)。
  3. 普通进程支持两种调度策略(标准轮流分时调度策略SCHED_NORMAL,空闲调度策略SCHED_IDLE)

进程优先级:限期进程>实时进程>普通进程

  • 限期调度策略有3个参数:运行时间runtime,截止期限deadline及周期period。每个周期运行一次,在截止期限之前执行完毕,一次运行的时间长度runtime
  • 先进先出调度没有时间片,如果没有更高优先级实时进程,并且它不睡眠,将会一直占用处理器。
  • 轮流调度有时间片,进程用完时间片之后加入优先级对应运行队列尾部.把处理器让给优先级相同的其它实时进程。
  • 标准轮流分时策略使用CFS算法,把处理器赶时间公平地分配给每个进程。
  • 空闲调度策略用来执行优先级低的后台作业。

Completely Fair Scheduler (CFS):完全公平调度器是Linux内核默认的调度器。它引入权重,分配给进程时间,并采用红黑树数据结构来管理任务,通过动态调整任务的优先级和时间片来实现公平调度。

Completely Fair Queuing (CFQ) Scheduler:CFQ调度器是一种I/O调度器,它通过维护一个I/O请求队列,以尽量平衡各个进程对I/O资源的使用,从而提高整个系统的I/O性能。

MuQSS Scheduler:MuQSS调度器是一种基于CFS的改进版本,它提供了更佳的响应性和更佳的实时性能。

【嵌入式八股】精华版(免费216问精华八股) https://www.nowcoder.com/creation/manager/columnDetail/0rOeJm

【嵌入式八股】一、语言篇https://www.nowcoder.com/creation/manager/columnDetail/mwQPeM

【嵌入式八股】二、计算机基础篇https://www.nowcoder.com/creation/manager/columnDetail/Mg5Lym

【嵌入式八股】三、硬件篇https://www.nowcoder.com/creation/manager/columnDetail/MRVDlM

【嵌入式八股】四、嵌入式Linux篇https://www.nowcoder.com/creation/manager/columnDetail/MQ2bb0

全部评论

相关推荐

评论
1
2
分享

创作者周榜

更多
牛客网
牛客企业服务