所有系统调用都是非实时安全的吗?

时间:2012-07-17 20:32:52

标签: linux real-time system-calls

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

这似乎过于严格 - 如果没有系统调用,你的进程怎么能做任何事情(除非必须完全通过DMA完成)?

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

2 个答案:

答案 0 :(得分:1)

如果通过"实时安全"你的意思是保证在有限的时间内执行,那么linux,就像大多数通用操作系统一样,并不是实时安全的。

各种real-time operating systems(RTOS)提供了这种保证。

答案 1 :(得分:0)

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

  • 任何阻止同步功能
  • 任何内存分配功能
  • 任何I / O功能
  • 复杂度大于O(n)的算法(在用户空间内),其中n是输入缓冲区中元素的数量。