Communication inter-processus - Présentation
La communication inter-processus (IPC) est un mécanisme qui implique la communication d'un processus avec un autre processus. Cela se produit généralement dans un seul système.
La communication peut être de deux types -
Entre des processus liés démarrant à partir d'un seul processus, tels que les processus parents et enfants.
Entre des processus indépendants, ou deux ou plusieurs processus différents.
Voici quelques termes importants que nous devons connaître avant de poursuivre sur ce sujet.
Pipes- Communication entre deux processus liés. Le mécanisme est semi-duplex, ce qui signifie que le premier processus communique avec le deuxième processus. Pour réaliser un duplex intégral, c'est-à-dire pour que le deuxième processus communique avec le premier processus, un autre tuyau est nécessaire.
FIFO- Communication entre deux processus indépendants. FIFO est un duplex intégral, ce qui signifie que le premier processus peut communiquer avec le deuxième processus et vice versa en même temps.
Message Queues- Communication entre deux ou plusieurs processus avec une capacité full duplex. Les processus communiqueront entre eux en publiant un message et en le récupérant hors de la file d'attente. Une fois récupéré, le message n'est plus disponible dans la file d'attente.
Shared Memory- La communication entre deux ou plusieurs processus est réalisée grâce à un morceau de mémoire partagé entre tous les processus. La mémoire partagée doit être protégée les unes des autres en synchronisant l'accès à tous les processus.
Semaphores- Les sémaphores sont destinés à synchroniser l'accès à plusieurs processus. Lorsqu'un processus souhaite accéder à la mémoire (pour la lecture ou l'écriture), il doit être verrouillé (ou protégé) et libéré lorsque l'accès est supprimé. Cela doit être répété par tous les processus pour sécuriser les données.
Signals- Le signal est un mécanisme de communication entre plusieurs processus par voie de signalisation. Cela signifie qu'un processus source enverra un signal (reconnu par un numéro) et le processus de destination le traitera en conséquence.
Note - Presque tous les programmes de ce didacticiel sont basés sur des appels système sous Linux Operating System (exécutés sous Ubuntu).