Communication inter-processus (IPC) dans le système d'exploitation
⚡ Résumé intelligent
La communication interprocessus (IPC) est un ensemble de mécanismes du système d'exploitation qui permettent aux processus et aux threads d'échanger des données, de coordonner des activités et de synchroniser des actions, qu'ils s'exécutent sur un seul ordinateur ou sur plusieurs machines connectées par un réseau.

Qu’est-ce que la communication inter-processus ?
Communication inter-processus (IPC) L'IPC (Interprocess Communication) est utilisée pour l'échange de données entre plusieurs threads au sein d'un ou plusieurs processus ou programmes. Ces processus peuvent s'exécuter sur un seul ordinateur ou sur plusieurs ordinateurs connectés en réseau.
Il s'agit d'un ensemble d'interfaces de programmation permettant à un programmeur de coordonner les activités de différents processus pouvant s'exécuter simultanément au sein d'un système d'exploitation. Ceci permet à un seul programme de traiter simultanément de nombreuses requêtes utilisateur.
Étant donné que chaque requête utilisateur peut entraîner l'exécution de plusieurs processus au sein du système d'exploitation, ces processus peuvent avoir besoin de communiquer entre eux. Chaque approche de communication interprocessus (IPC) présente ses propres avantages et limitations ; il n'est donc pas rare qu'un même programme utilise plusieurs méthodes IPC.
Approches pour la communication inter-processus
Voici quelques méthodes importantes pour la communication inter-processus :
Approches de communication inter-processus
Pipes
Un tube est couramment utilisé pour la communication entre deux processus liés. Il s'agit d'une méthode semi-duplex, où le premier processus communique avec le second. Cependant, pour obtenir une communication bidirectionnelle (full-duplex), un second tube est nécessaire.
Passage de message
Il s'agit d'un mécanisme permettant à un processus de communiquer et de se synchroniser. Grâce à l'échange de messages, les processus communiquent entre eux sans recourir à des variables partagées.
Le mécanisme IPC propose deux opérations :
- Envoyer (message) — la taille du message peut être fixe ou variable
- Recevoir (message)
Files d'attente de messages
Une file d'attente de messages est une liste chaînée de messages stockés dans le kernel. Il est identifié par un identifiant de file de messages. Cette méthode offre une communication entre un ou plusieurs processus avec une capacité full-duplex.
Communication directe
Dans ce type de communication interprocessus, les processus doivent s'identifier explicitement. Cette méthode établit un lien entre deux processus communicants, et entre chaque paire, il n'existe qu'un seul lien.
Communication indirecte
La communication indirecte s'établit uniquement lorsque des processus partagent une boîte aux lettres commune. Chaque paire de processus peut partager plusieurs liens de communication, et un seul lien peut communiquer avec de nombreux processus. Le lien peut être bidirectionnel ou unidirectionnel.
La memoire partagée
La mémoire partagée est une zone de mémoire utilisée par deux processus ou plus. Cette mémoire doit être protégée contre les accès concurrents par la synchronisation des processus qui l'utilisent.
FIFO
La méthode FIFO est utilisée pour la communication entre deux processus indépendants. Il s'agit d'une méthode bidirectionnelle (full-duplex), ce qui signifie que le premier processus peut communiquer avec le second, et inversement.
Pourquoi IPC ?
Voici les raisons d'utiliser le protocole de communication interprocessus pour le partage d'informations :
- Cela contribue à accélérer la modularité.
- Accélération des calculs.
- Séparation des privilèges.
- Commodité.
- Il permet aux processus et au système d'exploitation de communiquer et de synchroniser leurs actions.
Termes utilisés dans la CIB
Voici quelques termes importants utilisés dans l'IPC :
Semaphores: Un sémaphore est un mécanisme de signalisation. Cette méthode du système d'exploitation autorise ou interdit l'accès à une ressource, selon sa configuration.
Signals: Un signal est une méthode de communication entre plusieurs processus. Le processus source envoie un signal, identifié par un numéro, et le processus de destination le traite.
Suggestion de lecture : Qu'est-ce que le Semaphore? Types binaires et de comptage avec exemple
Qu'est-ce qui ressemble à FIFOS et contrairement à FIFOS
Le tableau suivant compare les FIFO de même type et les FIFO de types différents :
| Comme FIFOS | Contrairement au FIFOS |
|---|---|
| Elle suit la méthode FIFO. | Elle utilise une méthode permettant de filtrer les messages urgents spécifiques avant qu'ils n'atteignent le haut de la liste. |
| Le principe FIFO existe indépendamment des processus d'envoi et de réception. | Toujours prêt à l'emploi, il n'est donc pas nécessaire de l'ouvrir ou de le fermer. |
| Permet le transfert de données entre des processus non liés. | Aucun problème de synchronisation n'est constaté entre l'ouverture et la fermeture. |

