宅男
发布时间:2017-07-11 15:31:29
我们知道内核有个全局变量叫着jiffies,同时有个跟它有关的宏定义叫着HZ。Jiffies依赖于CPU的定时器,每一个时钟tick,jiffies数值加1.一般HZ是一个整数,HZ个jiffies为1s钟。一般我们设置HZ为100,时钟中断的间隔为10ms,也就意味着jiffies的最小精确度为10ms。Schedulertick也是在这个时钟中断中完成的。Tim.........【阅读全文】
发布时间:2017-07-10 16:58:17
前面讲到了fair class的select_task_rq_fair函数,看到了其中的一段如下代码:group = find_idlest_group(sd, p, cpu, sd_flag); if (!group) { &.........【阅读全文】
发布时间:2017-07-07 16:57:14
这一篇准备介绍一下CFS的PELT(per entity load tracking)。这一套用来量化进程的负载的模型。这套模型在__update_load_avg函数上面的注释中有详细的解释。其主要思想是将进程的运行时间切分为以1ms为单位的时间片段。过去的每一个时间片段对于进程负载的影响也不同。为了便于计算,将1ms设置为1024us。* [......【阅读全文】
发布时间:2017-07-06 13:30:26
下面准备详细的解释一下scheduler class的各个函数的用途。struct sched_class { const struct sched_class *next;//下一个比其等级低的class。其顺序依次为stop ,deadline,real time,fair,idle。 void .........【阅读全文】