【发布时间】:2011-11-04 21:52:19
【问题描述】:
我是 Linux 内核的初学者,我正在尝试学习 Linux 如何调度进程。
我已经阅读了一些关于 Linux 内核的书籍,并浏览了来自 IBM http://www.ibm.com/developerworks/linux/library/l-cfs/ 的链接等等,但我仍然有一些疑问。
- 调度器如何调度
sysctl_sched_latency时间内的所有任务? - 当一个进程唤醒时,
place_entity函数实际上做了什么? - 当进程唤醒时,为什么要通过从
sched_latency中减去来调整vruntime?这不会导致运行队列中的进程在vruntime值上有很大差异吗?
【问题讨论】:
-
关于你的第一个问题 - 来自oakbytes.wordpress.com/2012/06/06/…:如果可运行任务的数量不超过 sched_latency_ns/sched_min_granularity_ns 调度周期 = sched_latency_ns 否则调度周期 = number_of_running_tasks * sched_min_granularity_ns
标签: linux linux-kernel scheduler