与守护进程的高性能连续通信

时间:2012-05-02 17:26:17

标签: performance ipc hardware-interface

我需要几个客户端程序(立体声DSP音频发生器)才能连续,双向地与I2C总线上的外围设备通信,数据速率约为16kB / s,每1ms更新一次,全部运行在700MHz CPU。程序需要同时访问读写,但我不关心锁定写入。

我正在设想一个守护进程来管理原始I2C通信,客户端音频程序通过以下IPC选项之一与守护进程通信:

  • DBUS
  • Berkeley / POSIX套接字
  • 内存映射文件

使用DBUS我有性能问题,而且对于Berkeley / POSIX套接字,我不确定处理多个客户端。由于守护程序通信必须在与音频呈现相同的线程中发生,因此不会发生锁定也很重要。

内存映射似乎适合任务。 10个字节应该这样做,我需要4个字节用于输入,4个字节用于输出,某种方式告诉该守护进程它应该现在写入输出字节,以及某种方式告诉守护进程它当前应该不断更新输入字节。但据我所知,内存映射依赖于操作系统的缓冲,所以我不确定如果我的守护进程在我的客户端应用程序处于read()操作的中间时更新输入字节会发生什么。

在我的方案中,进程间通信的最佳选择是什么?

0 个答案:

没有答案