调度子系统阅读

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

posted @ 2013-09-23 14:03  javaadu  阅读(189)  评论(0)    收藏  举报