嵌入式每日八股3.1
Linux内核的调度策略有哪些?
Linux内核提供了多种调度策略,常用的调度策略有以下几种:
- 限期进程使用限期调度策略(SCHED_DEADLINE) ;
- 实时进程支持两种调度策略(先进先出调度策略SCHED_FIFO,轮流调度策略SCHED_RR)。
- 普通进程支持两种调度策略(标准轮流分时调度策略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