Mam aplikację systemową, która działa jako zbiór 12 procesów na systemie UNIX. Istnieje proces monitorowania, który wymienia dane z 11 innymi procesami.Który IPC jest tutaj bardziej wydajny?
Wymóg IPC polega na komunikacji tych 11 procesów z procesem monitorowania, zaprojektowanym w sposób najbardziej efektywny pod względem wykonania. Czy możecie zważyć dwie poniższe opcje lub zaproponować lepszą opcję?
1) posiadać komunikację w gnieździe UDP, w którym te 11 procesów przesyła dane do procesu monitorowania w okresowych odstępach czasu. proces monitorowania polega jedynie na słuchaniu i przechwytywaniu informacji, które są wystarczająco dobre.
LUB
2) mają wspólną realizację pamięci. więc mamy 11 segmentów pamięci dzielonej, z których każdy jest dzielony między 2 procesy (proces i proces monitorowania).
Dla pamięci współdzielonej wydaje się szybsza, ale wymagana jest blokada/synchronizacja, gdzie jak w UDP, jądro kopiuje dane z przestrzeni pamięci jednego procesu do drugiego.
Czy ktoś może podać więcej danych wejściowych, aby lepiej ocenić dwie metody. ? Dzięki.
Czy naprawdę masz na myśli gniazdo UDP, lub masz na myśli gniazda domeny Unix? –