如果有实时内核,为什么要使用普通内核?

普通Ubuntu内核与实时内核相比有什么好处? 什么是实时内核的权衡?

实时内核可以保证对进程的某个响应时间。 例如,该过程必须从控制系统读取每10ms的值。 实时,您可以确保不会丢弃任何值。

如果你不操作某种制造控制系统,你很简单就不需要了。

如果内核不能保证每个进程在一段时间内成为时间片,那么整体系统性能可能会更好。 (更好的I / O利用率,更低的流程开关开销等)

总结一下:实时不会增加系统的吞吐量。

扩展这个答案 ,在吞吐量延迟 (或响应性 )之间进行了一般性的权衡。 吞吐量是指每单位时间可以完成的工作量; 延迟是指您在开始新工作之前等待的时间。

由于从一个任务切换到另一个任务(您需要重新加载旧任务的状态,刷新缓存等)的开销,通过尽可能不频繁地切换任务来最大化吞吐量 。 另一方面,通过在任务之间快速切换来最小化延迟 ,因此任何单个任务都不需要等待很长时间才能再次运行。 因此,实时内核中改进的延迟将以降低峰值吞吐量为代价。

在吞吐量/延迟权​​衡之外,还有其他人需要考虑; 实时内核不是主线(尚未),因此没有那么多测试,实时内核将消耗更多功率(因为它会更积极地唤醒处理器)。