Ivan Asked: 2010-10-03 14:02:03 +0800 CST2010-10-03 14:02:03 +0800 CST 2010-10-03 14:02:03 +0800 CST 如果有实时内核,为什么要使用普通内核? 772 与实时内核相比,普通 Ubuntu 内核有什么好处?实时内核的权衡是什么? performance kernel realtime 3 个回答 Voted Best Answer aatdark 2010-10-03T15:47:34+08:002010-10-03T15:47:34+08:00 实时内核可以保证对进程有一定的响应时间。例如,该过程必须每 10 毫秒从控制系统中读取一次值。您可以实时确保不会丢失任何值。 如果你不操作某种制造控制系统,你根本就不需要它。 如果内核不必保证每个进程在一段时间内都有一个时间片,那么整体系统性能可能会更好。(更好的 I/O 利用率,更低的进程切换开销等) 总结一下:实时不会增加系统的吞吐量。 RAOF 2010-10-04T19:04:06+08:002010-10-04T19:04:06+08:00 扩展这个答案,吞吐量和延迟(或响应性)之间存在一般的权衡。吞吐量是单位时间内可以做多少工作;延迟是您在开始新工作之前等待的时间。 由于从一个任务切换到另一个任务会产生开销(您需要重新加载旧任务的状态、刷新缓存等),因此通过尽可能不频繁地切换任务来最大化吞吐量。另一方面,通过在任务之间快速切换来最小化延迟,因此没有单个任务需要等待很长时间才能再次运行。因此,实时内核中延迟的改进将以降低峰值吞吐量为代价。 除了吞吐量/延迟权衡之外,还有其他需要考虑的;实时内核(还)不是主线,因此没有太多测试,实时内核将消耗更多功率(因为它更积极地唤醒处理器)。 TommyPeanuts 2020-07-13T02:29:33+08:002020-07-13T02:29:33+08:00 运行实时内核的主要问题是它带来了严重的安全问题。RT 进程有可能完全接管一台机器。 还有其他不运行 RT 的原因,其中包括: 自 Linux 2.6 以来,实时堆栈已成为 Linux 内核的一部分,不再需要使用实时堆栈修补内核。 Preempt-RT 在默认的 Ubuntu 内核配置中启用,以实现音频和其他应用程序的最低延迟,同时保持用户界面可用。 它可能会减慢您的机器速度。 更多信息和探索这里的问题: https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel https://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf
实时内核可以保证对进程有一定的响应时间。例如,该过程必须每 10 毫秒从控制系统中读取一次值。您可以实时确保不会丢失任何值。
如果你不操作某种制造控制系统,你根本就不需要它。
如果内核不必保证每个进程在一段时间内都有一个时间片,那么整体系统性能可能会更好。(更好的 I/O 利用率,更低的进程切换开销等)
总结一下:实时不会增加系统的吞吐量。
扩展这个答案,吞吐量和延迟(或响应性)之间存在一般的权衡。吞吐量是单位时间内可以做多少工作;延迟是您在开始新工作之前等待的时间。
由于从一个任务切换到另一个任务会产生开销(您需要重新加载旧任务的状态、刷新缓存等),因此通过尽可能不频繁地切换任务来最大化吞吐量。另一方面,通过在任务之间快速切换来最小化延迟,因此没有单个任务需要等待很长时间才能再次运行。因此,实时内核中延迟的改进将以降低峰值吞吐量为代价。
除了吞吐量/延迟权衡之外,还有其他需要考虑的;实时内核(还)不是主线,因此没有太多测试,实时内核将消耗更多功率(因为它更积极地唤醒处理器)。
运行实时内核的主要问题是它带来了严重的安全问题。RT 进程有可能完全接管一台机器。
还有其他不运行 RT 的原因,其中包括:
自 Linux 2.6 以来,实时堆栈已成为 Linux 内核的一部分,不再需要使用实时堆栈修补内核。
Preempt-RT 在默认的 Ubuntu 内核配置中启用,以实现音频和其他应用程序的最低延迟,同时保持用户界面可用。
它可能会减慢您的机器速度。
更多信息和探索这里的问题:
https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel
https://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf