7

A と B の 2 つのプロセスがあります。A と B は、信号やメッセージなどを渡すために (双方向で) 通信する必要がある場合があります。
セマフォ、メッセージ キュー、dbus など、Linux で利用可能な IPC について基本的な調査を行いました
。どちらを使用するかを決定する際に混乱しています。アプリケーションに使用するのに適した IPC を誰か教えてもらえますか?

前もって感謝します

編集済み:アプリケーションの作成。(これは組み込みアプリケーションです)
プロセスAは温度、速度計算などを監視しますプロセスBはモーターを駆動し、センサー値(数値)などを読み取りますので、モーターの駆動を停止します。プロセスAのセンサーから読み取ったデータをプロセスBに送信する必要がある場合があります。このように、数値データをプロセス間で渡す必要があります。そして、私はARMアーキテクチャでこれを行っています。

4

1 に答える 1

16

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

ここにもう1つの素晴らしい比較があります

Unix/Linux IPC の比較

于 2013-02-20T17:38:52.147 に答える