时间片由HZ驱动,所以时间片的最小值是1/HZ
在O(1)调度器中,比2.4增强负的nice(2003修改),故意调整时间片的线性关系,
使nice值为19的时间片精确地为1个jiffy.
为了更好的理解,请看下面的曲线图:
A
\ | [timeslice length]
\ |
\ |
\ |
\ |
\|___100msecs
|^ . _
| ^ . _
| ^ . _
-*----------------------------------*-----> [nice level]
-20 | +19
|
|
加入真的想renice任务,+19 的效果会比线性规则明显 (give a much bigger hit than)
这种方法在一定程度上有效,但是当1 jiffy 是 1 msec的时候(HZ=1000),
这就意味着只有0.1% CPU利用率,对于系统调度来说太过于频繁。
所以当HZ=1000时候,我们现在修改nice值19的时间片为5msecs,这样从感觉上来说,这个粒度
比较合适,同时CPU利用率也提高到5%
更详细的设计请参考:sched-nice-design.txt