gpt4 book ai didi

Linux IPC选择?

转载 作者:IT王子 更新时间:2023-10-29 00:24:46 26 4
gpt4 key购买 nike

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

提前致谢

已编辑:阐述应用程序。 (这是一个嵌入式应用程序)
进程 A 将监控温度、速度计算等。进程 B 将驱动电机、读取传感器值(数字)等。有时我需要向进程 B 发送信号,告知已达到最高温度,因此停止驱动电机。有时需要将从进程 A 中的传感器读取的数据发送到进程 B。像这样,数字数据需要跨进程传递。我正在 ARM 架构中执行此操作。

最佳答案

IPC 技术的选择取决于您要实现的应用程序。以下是基于性能的良好比较:

IPC name      Latency     Throughput   Description
-----------------------------------------------------------------------------------------
Signal Low n/a Can be used only for notification, traditionally-
to push process to change its state

Socket Moderate Moderate Only one mechanism which works for remote nodes,
not very fast but universal

D-Bus High High A high-level protocol that increases latency and
reduces throughput compared to when using base
sockets, gains in increased ease of use

Shared n/a High Data saved in-between process runs(due to swapping
memory access time) can have non-constant access latency

Mapped files n/a High Data can be saved in-between device boots

Message Low Moderate Data saved in-between process runs. The message
queue size is limited but there is less overhead
to handle messages

还有一个比较不错的

Comparing Unix/Linux IPC

关于Linux IPC选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14985999/

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