调度子系统阅读

1、

1#define cpu_rq(cpu)     (&per_cpu(runqueues,(cpu)))

//获取编号为cpuCPU的就绪队列的首地址

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)

//获取编号为cpuCPU上当前运行的进程的task_struct实例的地址

2、调度子系统的各个数据结构直接的关系概观

 

3、一些关键的变量

1vruntime

负责统计进程执行期间虚拟时钟上流逝的时间数量

4、优秀的参考资料

1http://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中定义的函数做了特定的实现,这里包含着多态的思想。

你可能感兴趣的:(调度子系统阅读)