1、
(1)#define cpu_rq(cpu) (&per_cpu(runqueues,(cpu)))
//获取编号为cpu的CPU的就绪队列的首地址
(2)#define this_rq() (&__get_cpu_var(runqueues))
//取得当前CPU的运行队列(runqueues)
(3)#define task_rq(p) cpu_rq(task_cpu(p))
//获取进程p所在的就绪队列的首地址
//task_cpu(p) 获取进程p所在CPU的编号
(4)#define cpu_curr(cpu) (cpu_rq(cpu)->curr)
//获取编号为cpu的CPU上当前运行的进程的task_struct实例的地址
2、调度子系统的各个数据结构直接的关系概观
3、一些关键的变量
(1)vruntime
负责统计进程执行期间虚拟时钟上流逝的时间数量
4、优秀的参考资料
(1)http://www.ibm.com/developerworks/cn/linux/l-cfs/
(2)http://jianxi.info/blog/2013/04/10/sched-travel/
5、sched_class为基类
完全公平调度类(fair_sched_class)/实时调度类(rt_sched_class)都是继承自sched_class并将sched_class中定义的函数做了特定的实现,这里包含着多态的思想。