文章目录
1、实时基础回顾
- Linux系统中同时存在实时任务与非实时任务,实时任务对系统的响应时间要求很高,要求在可控的时间内能够得到调度。
- Linux内核中实时任务的有效优先级在1~99之间(这里主要指rt_sched_class调度类中的实时任务,SCHED_DEADLINE任务不基于优先级)。
1.1、调度类以及调度策略
- 1、Linux内核中有两个调度类对应实时任务的调度,分别为rt_sched_class以及dl_sched_class。
- 1.1、rt_sched_class支持SCHED_FIFO以及SCHED_RR两种调度策略。
- 1.2、dl_sched_class对实时任务的调度采用SCHED_DEADLINE调度策略。
- 1.2、对于同样采用SCHED_FIFO调度策略的任务,高优先级的任务可以抢占低优先级任务,而处于同一优先级的任务按照先进先出的原则,先到的任务会一直占用cpu,直到主动让出cpu或者被更高优先级的任务抢占。
- 另外对于采用SCHED_FIFO调度策略的实时任务,也会被SCHED_D