mirror of
https://github.com/gatieme/LDD-LinuxDeviceDrivers.git
synced 2026-09-24 05:53:54 +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}$$
|
||||
|
||||
|
||||
|
||||
@@ -134,10 +134,9 @@ $$ delta =delta \times \dfrac{NICE_0_LOAD}{curr->se->load.weight} ;(if curr.ni
|
||||
|
||||
| 条件 | 公式 |
|
||||
|:-------:|:-------:|
|
||||
| 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\\_exec \times \dfrac{NICE\\_0\\_LOAD}{curr->se->load.weight}$ |
|
||||
| curr.nice == NICE_0_LOAD | $ curr->vruntime += delta $ |
|
||||
|
||||
|
||||
在该计算中可以派上用场了, 回想一下子, 可知越重要的进程会有越高的优先级(即, 越低的nice值), 会得到更大的权重, 因此累加的虚拟运行时间会小一点,
|
||||
|
||||
根据公式可知, nice = 0的进程(优先级120), 则虚拟时间和物理时间是相等的, 即current->se->load.weight等于NICE_0_LAD的情况.
|
||||
|
||||
Reference in New Issue
Block a user