mirror of
https://github.com/gatieme/LDD-LinuxDeviceDrivers.git
synced 2026-09-21 11:53:35 +08:00
CFS调度器之虚拟时钟...
This commit is contained in:
@@ -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值), 会得到更大的权重, 因此累加的虚拟运行时间会小一点,
|
||||
|
||||
Reference in New Issue
Block a user