0

在嵌入式项目中,我们在决定使用哪种调度策略时面临困难。对于某些要通过的测试用例,我们需要使用SCHED_OTHER,而对于其他一些测试用例,我们需要使用SCHED_RR。但是如果我们将SCHED_RR某些任务设置为休息SCHED_OTHER,则全部测试用例正在通过。这是否合法,在同一个项目中使用两种策略是否有任何额外的副作用?

4

1 回答 1

0

我假设您在谈论Linux?那么是的,让一些任务使用 SCHED_RR 运行而其他任务使用 SCHED_OTHER 运行是完全可以接受的。

请注意,SCHED_RR 任务将始终在 SCHED_OTHER 任务之前运行。因此,如果您将任务设置为 SCHED_RR,您的测试运行得更好也就不足为奇了。需要注意的是,您的 SCHED_RR 任务可能会使用 100% 的 CPU,并且会饿死 SCHED_OTHER 任务。当您说某些输入被丢弃时,可能会发生这种情况。

迈克尔

于 2012-03-10T18:32:02.503 回答