cfs的 latency 如何体现 的呢?
原型是所有 running task 去平分这个具短的latency 。假如这个是 100毫秒。 有50个task,
所有task一样的优先级。每个人2毫秒 。
假如没任中断抢占。
运行完2毫秒会发生抢占吗?code在哪里?schedule tickit 回包含抢占代码吗?
我理解的
我理解看到的 ,schedule会取运行时间最短的程序,然后尽可能的抢占来重新schedule。 并没有找到体现latency 的 ,感觉时钟频率和这个很像就是最小计时单位但是 。貌似就是不一样 cfs讲绝对公平是个笑话,一样的还是时间片 。
只是在某些场合下解决了0(1)的问题。 回复 4# mordorwww
很少进程的时候 比如 2个进程,target latency =20 , 时间片 走完 是谁来 触发schedule?a给10
b给10
我想知道党a运行了10 之后 是怎么 抢占的呢?
本帖最后由 mordorwww 于 2016-09-13 14:50 编辑
nuclearxin 发表于 2016-09-13 14:26
回复 4# mordorwww
很少进程的时候 比如 2个进程,target latency =20 , 时间片 走完 是谁来 触发sche ...
和0(1)以及之前 的调度算法一样,还是靠定时器和时间片, 只是CFS时间片的算法不同了而已。
内核里仍然有个 scheduler_tick 函数。
较新的内核都有tickless,但是还是时间片
已经找到答案了
同学们
https://oakbytes.wordpress.com/2012/07/03/cfs-and-periodic-scheduler/
确实是 schedule tick 来 检查的。。。。
还是靠google。。 mordorwww 发表于 2016-09-13 14:46
和0(1)以及之前 的调度算法一样,还是靠定时器和时间片, 只是CFS时间片的算法不同了而已。
内核里仍然 ...
恩
谢谢 我也找到一分资料
屡清了思绪。懒得看代码就这点不好哈哈
页:
[1]