Linux-进程调度
- 进程调度算法
- cpu如何进行进程调度
- 主动调度与抢占调度
进程调度算法
- stop_sched_class 优先级最高的任务使用这种调度策略,会中断其他线程,不会被其他任务打断
- dl_sched_class 对于deadline调度算法,DL 调度器总是选择其 deadline 距离当前时间点最近的那个任务调度执行
- rt_sched_class 对于RR算法(时间片轮转)和FIFO算法(先进先出)
- fair_sched_class 就是普通进程调度策略(完全公平调度算法)
- idle_sehed_class 空闲进程的调度算法
cpu如何进行进程调度
- cpu 会轮询进程调度类stop_sched_class,dl_sched_class,rt_sched_class,fair_sched_class,idle_sehed_class获取其中的rq队列,次rq队列是红黑树实现
- 获取当前红黑树最左叶子节点,每一个叶子节点都是一个sched_entiry.每个sched_entry里面都是有一个task_struct,
每一个task_struct 都有实现了响应调度算法类的函数
主动调度与抢占调度