5

我听说在 Linux(RT_PREEMPT 内核)中执行系统调用从来都不是实时安全的。

这似乎过于严格——你的进程如何在没有系统调用的情况下做任何事情(除非它必须完全通过 DMA 完成)?

这是真的,还是某些系统调用(如clock_gettime)是实时安全的?

4

2 回答 2

1

如果您所说的“实时安全”是指保证在有限时间内执行,那么与大多数通用操作系统一样,linux 也不是实时安全的。

各种实时操作系统(RTOS)提供了这种保证。

于 2016-05-07T02:46:42.140 回答
0

您可以查看存储库中functions的文件。jack_interposer这些不是实时安全的。这是一个比询问哪些实时安全的更容易的问题。应该避免的一个好的经验法则是:

  • 任何阻塞同步功能
  • 任何内存分配函数
  • 任何 I/O 功能
  • 复杂度大于 O(n) 的算法(在用户空间内),其中 n 是输入缓冲区中的元素数。
于 2017-05-06T14:25:41.407 回答