CFS调度器之虚拟时钟...

This commit is contained in:
gatieme
2016-06-29 14:32:04 +08:00
parent a0c3bb13a6
commit aa3300128e
@@ -121,7 +121,7 @@ static inline u64 calc_delta_fair(u64 delta, struct sched_entity *se)
忽略舍入和溢出检查, calc_delta_fair函数所做的就是根据下列公式计算:
$$ delta =delta \times \dfrac{NICE\_0\_LOAD}{curr->se->load.weight} ;(if curr.nice!=NICE_0_LOAD)$$
$$ delta =delta \times \dfrac{NICE\\_0\\_LOAD}{curr->se->load.weight} ;(if curr.nice!=NICE_0_LOAD)$$
@@ -130,12 +130,11 @@ $$ delta =delta \times \dfrac{NICE\_0\_LOAD}{curr->se->load.weight} ;(if curr.
那么`curr->vruntime += calc_delta_fair(delta_exec, curr);` 即相当于如下操作
$a^2$
| 条件 | 公式 |
|:-------:|:-------:|
| curr.nice != NICE_0_LOAD | $curr->vruntime += delta\_exec \times \dfrac{NICE\_0\_LOAD}{curr->se->load.weight} (if )$ |
| curr.nice != NICE_0_LOAD | $curr->vruntime += delta\\_exec \times \dfrac{NICE\\_0\\_LOAD}{curr->se->load.weight}$ |
| curr.nice == NICE_0_LOAD | $ curr->vruntime += delta $ |
在该计算中可以派上用场了, 回想一下子, 可知越重要的进程会有越高的优先级(即, 越低的nice值), 会得到更大的权重, 因此累加的虚拟运行时间会小一点,