2013-02-20 12 views
6

Mam dwa procesy A i B. A i B musi komunikować się (dwukierunkowe) czasami dla przekazywania sygnałów, wiadomości itp.
Zrobiłem kilka podstawowych badań na temat IPC dostępnych w systemie Linux takich jak semafor, kolejki wiadomości, dbus itp
Teraz jestem w niepewności decydując, który z nich użyć, Czy ktoś może mi powiedzieć, który IPC jest lepszy w użyciu?Wybór Linuxa IPC?

góry dzięki

Zmieniano: opracowaniu wniosku. (Jest to aplikacja wbudowana)
Proces A będzie monitorował temperaturę, obliczanie prędkości itp. Proces B będzie napędzał silnik, odczytując wartości czujnika (numeryczne) itd. Czasami muszę wysłać sygnał, aby przetworzyć B z informacją Max temperatura jest osiągnięta, więc przestań napędzać silnik. Czasami konieczne jest wysłanie danych odczytanych z czujnika w procesie A do procesu B. W ten sposób dane liczbowe muszą zostać przekazane w całym procesie. I robię to w ARM Architecture.

+0

To zależy od aplikacji ... –

+0

Może powinieneś opracować od typu (-ów) dane, które będą przetwarzać procesory i ewentualnie typ używanych procesorów (ARM ?, x86 ?, MIPS?). –

+0

@ n.m. i LastCoder Edytowałem pytanie i dodałem informacje o aplikacji. –

Odpowiedz

12

Wybór techniki IPC zależy od aplikacji, którą próbujesz wdrożyć. Poniżej jest to dobra baza na porównanie wydajności:

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 

Oto jeszcze jeden miły porównania

Comparing Unix/Linux IPC

+2

Dziękuję za miłe porównanie, planuję użyć D-Bus do mojej aplikacji, niepokoję się z powodu dużego opóźnienia. Mój jest aplikacją w czasie rzeczywistym. –