【发布时间】:2012-02-17 07:42:10
【问题描述】:
在从事嵌入式项目时;在将调度策略从 SCHED_OTHER 更改为 SCHED_RR 期间,我遇到了计时器问题和流加载延迟。一些问题在SCHED_OTHER 期间不会出现,而是在SCHED_RR(循环)出现。
更改调度策略会产生什么影响。在政策变更期间在嵌入式项目中实现内核模块时需要注意什么?
【问题讨论】:
在从事嵌入式项目时;在将调度策略从 SCHED_OTHER 更改为 SCHED_RR 期间,我遇到了计时器问题和流加载延迟。一些问题在SCHED_OTHER 期间不会出现,而是在SCHED_RR(循环)出现。
更改调度策略会产生什么影响。在政策变更期间在嵌入式项目中实现内核模块时需要注意什么?
【问题讨论】:
SCHED_RR 带有时间片,因此如果进程完成时间片 下一个过程将轮流进行。如果你的时间片足够大,那么短的 IO 进程 将比 Cpu 处于劣势,因为 cpu 任务会在整个时间片内阻塞 CPU。但是请注意,如果您减少时间片,您将获得更多的上下文切换,因此对于这个更高的责任会降低性能。我还提供了优先级。
SCHED_OTHER 与 RR 不同,因此不提供静态优先级。 它有一个动态优先级,如果进程准备好运行但在 等待队列。如果进程处于活动状态,它将被重置为 0。您还可以使用 nice 将动态值从 -20 缩放到 19(在 19 上,进程是 nice 并且更频繁地等待)
我主要在嵌入式系统中使用 SCHED_OTHER 和 SCHED_FIFO
最好的问候 肯尼
【讨论】: