相关疑难解决方法(0)

使用哪种Linux IPC技术?

我们仍处于项目的设计阶段,但我们正在考虑在嵌入式Linux内核上有三个独立的进程.其中一个过程是通信模块,它通过各种介质处理与设备之间的所有通信.

其他两个进程需要能够通过通信过程发送/接收消息.我正在尝试评估Linux提供的IPC技术; 其他进程将发送的消息大小各不相同,从调试日志到流媒体,速率约为5 Mbit.此外,媒体可以同时流入和流出.

您对此应用建议使用哪种IPC技术? http://en.wikipedia.org/wiki/Inter-process_communication

处理器运行大约400-500 Mhz,如果这改变了什么.不需要跨平台,只有Linux才行.需要使用C或C++实现.

linux ipc

67
推荐指数
4
解决办法
8万
查看次数

如何在python子进程之间传递大型numpy数组而不保存到磁盘?

有没有一种很好的方法可以在不使用磁盘的情况下在两个python子进程之间传递大量数据?这是我希望完成的动画示例:

import sys, subprocess, numpy

cmdString = """
import sys, numpy

done = False
while not done:
    cmd = raw_input()
    if cmd == 'done':
        done = True
    elif cmd == 'data':
        ##Fake data. In real life, get data from hardware.
        data = numpy.zeros(1000000, dtype=numpy.uint8)
        data.dump('data.pkl')
        sys.stdout.write('data.pkl' + '\\n')
        sys.stdout.flush()"""

proc = subprocess.Popen( #python vs. pythonw on Windows?
    [sys.executable, '-c %s'%cmdString],
    stdin=subprocess.PIPE,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE)

for i in range(3):
    proc.stdin.write('data\n')
    print proc.stdout.readline().rstrip()
    a = numpy.load('data.pkl')
    print a.shape

proc.stdin.write('done\n')
Run Code Online (Sandbox Code Playgroud)

这将创建一个子进程,该子进程生成numpy数组并将数组保存到磁盘.然后父进程从磁盘加载数组.有用!

问题是,我们的硬件可以生成比磁盘可读/写快10倍的数据.有没有办法将数据从一个python进程传输到另一个纯内存中,甚至可能没有复制数据?我可以做一些像传递参考的东西吗?

我第一次尝试纯粹在内存中传输数据是非常糟糕的:

import …
Run Code Online (Sandbox Code Playgroud)

python ctypes subprocess numpy pass-by-reference

26
推荐指数
3
解决办法
1万
查看次数

Linux上用于Java/C++应用程序的共享内存IPC的良好替代品

我目前正在使用Java和C++应用程序之间的IPC共享内存,但寻找更方便的替代方案.

有人可以建议一个性能和速度相同的更好的方法吗?

谢谢!

c++ java linux ipc shared-memory

10
推荐指数
2
解决办法
1万
查看次数

Linux IPC选择?

我有两个进程A和B. A和B有时需要进行通信(双向)以传递信号,消息等.
我已经对Linux中可用的IPC进行了一些基础研究,如信号量,消息队列,dbus等.
现在我是在决定使用哪一个时很困惑,谁能告诉我哪个IPC更适合我的应用?

提前致谢

编辑:阐述应用程序.(这是一个嵌入式应用程序)
过程A将监控温度,速度计算等.过程B将驱动电机,读取传感器值(数字)等.有时我需要将信号发送到过程B告知达到最高温度,所以停止驱动电机.有时需要将从流程A中的传感器读取的数据发送到流程B.像这样,需要在流程中传递数字数据.我在ARM架构中这样做.

linux semaphore ipc dbus message-queue

7
推荐指数
1
解决办法
3615
查看次数

什么是Windows IPC方法

问题:我有一个可以在另一个程序中加载的DLL.现在,dll可以访问其他程序中的所有数据/功能.

现在外部程序可以向该dll发送数据/命令,引导其他程序或从中获取数据,我可以使用哪种技术?

我的意思是,在过去,这意味着DDE,我认为这是在Windows 3.11/95次.我今天可以用什么?哪一个最容易?哪一个最快?

.net c# c++ vb.net dde

4
推荐指数
2
解决办法
2103
查看次数

Linux IPC - 多个编写器,单个读取器

我之前从未在Linux上编写任何IPC C++.

我的问题是我将拥有多个客户端(编写器)和一个服务器(读取器).所有这些都将在同一台机器上.作者将向读者提供数据块(字符串/结构).然后读者将在FIFO中读取它们并对它们执行某些操作.

据我所知,Linux上的IPC类型是管道或套接字/消息队列.

我只是想知道是否有人可以推荐我走下去的路.我倾向于插座,但我没有真正的基础.在踏上这段旅程之前,有什么我应该阅读/理解的吗?

谢谢

c++ linux client-server ipc

1
推荐指数
1
解决办法
4818
查看次数