什么是调度?按照某种调度算法,从进程的ready队列中选择进程给CPU。为什么要调度?为了最大限度的利用CPU。调度相关结构体task_struct我们先把task_struct中和调度相关的结构拎出来:struct task_struct { ...... /* *调度类。用 sched_class 对调度器进行抽象 *Stop调度器:stop_sched_class *Deadline调度器:dl_sched_class *RT调度器:rt_sched_class *CFS调度器:cfs_sched_class *IDLE-Task调度器:idle_sched_class */ const struct sched_class *sched_class; //CFS调度实体 struct sched_entity se; //RT调度实体 struct sched_rt_entity rt; ...... #ifdef CONFIG_CGROUP_SCHED //任务组(在每个CPU上都会维护一个CFS调度实体、CFS运行队列; RT调度实体,RT运行队列) struct task_group *sched_task_group; #endif //DL调度实体 struct sched_dl_ent
………………………………