gpt4 book ai didi

c++ - Unix 用户空间中的实时 IPC

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:43:29 24 4
gpt4 key购买 nike

我想寻求解决以下问题的最佳方法:我有两个不同的过程:生产者和消费者。生产者生产项目,其中每个项目都是一个无符号整数。并且消费者消费它们,与常规消费者生产者问题不同的是,消费者需要知道元素生产的确切时间。消费者无法信任生产者,因此生产者不应该将时间与元素一起提供,这迫使消费者在他消费元素的那一刻向系统询问当前时间。由于生产者是一个实时应用程序,因此所有这些都需要在对生产者影响尽可能小的情况下执行。

我试图阅读 Unix 中的 IPC 机制,但没有找到可以满足这些限制的内容。消费者和生产者是用 c++ 编写的。

欢迎任何想法,提前致谢

最佳答案

  1. 在生产者和消费者之间使用共享内存。
  2. 轮询消费者端的事件以尽量减少延迟。
  3. 将消费者线程固定到 CPU 以防止上下文切换(CPU 关联)。
  4. 使用定时器戳计数器 (TSC) 来避免长时间的“获取时间”系统调用。

这将为您提供最精确的结果。

当然,如果手头有其他要求,您可以牺牲上面的一些项目来使您的消费者应用程序的 CPU 效率更高或更简单......这取决于您。

关于c++ - Unix 用户空间中的实时 IPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44284496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com