Ho un'applicazione di sistema, che viene eseguita come raccolta su 12 processi su Unix. Esiste un processo di monitoraggio, che scambia dati con altri 11 processi.Quale IPC è più efficiente qui?
Il requisito IPC è di comunicare questi 11 processi con il processo di monitoraggio, progettato nel modo più efficiente in termini di esecuzione. Ragazzi, potete valutare le due opzioni sottostanti o suggerirne una migliore.
1) dispone di una comunicazione socket UDP, in cui questi 11 processi invieranno i dati al processo di monitoraggio a intervalli periodici. il processo di monitoraggio sta solo ascoltando e acquisendo informazioni che sono abbastanza buone.
O
2) avere un'implementazione di memoria condivisa. quindi ci sono 11 segmenti di memoria condivisa, in cui ciascuno è condiviso tra 2 processi (processo di processo e monitoraggio).
Per la memoria condivisa, sembra più veloce, ma c'è un blocco/sincronizzazione necessaria, dove come in UDP Il copie del kernel i dati dallo spazio di memoria di un processo all'altro.
Qualcuno può fornire più input per aiutare a valutare meglio i due metodi. ? Grazie.
Intendi davvero un socket UDP, o intendi socket di dominio Unix? –