Communication inter-processus (IPC) dans le système d'exploitation
Qu’est-ce que la communication inter-processus ?
Communication inter-processus (IPC) est utilisé pour échanger des données entre plusieurs threads dans un ou plusieurs processus ou programmes. Les processus peuvent être exécutés sur un ou plusieurs ordinateurs connectés par un réseau. La forme complète de l'IPC est la communication inter-processus.
Il s'agit d'un ensemble d'interfaces de programmation qui permettent à un programmeur de coordonner les activités de divers processus de programme pouvant s'exécuter simultanément dans un système d'exploitation. Cela permet à un programme spécifique de gérer plusieurs demandes d'utilisateurs en même temps.
Étant donné que chaque demande d'utilisateur peut entraîner l'exécution de plusieurs processus dans le système d'exploitation, les processus peuvent nécessiter une communication entre eux. Chaque approche de protocole IPC a ses propres avantages et limites, il n'est donc pas rare qu'un seul programme utilise toutes les méthodes IPC.
Approches pour la communication inter-processus
Voici quelques méthodes importantes pour la communication interprocessus :
Pipes
Pipe est largement utilisé pour la communication entre deux processus liés. Il s’agit d’une méthode semi-duplex, donc le premier processus communique avec le second processus. Cependant, pour obtenir un duplex intégral, un autre canal est nécessaire.
Passage de message
C'est un mécanisme permettant à un processus de communiquer et de se synchroniser. Grâce au passage de messages, les processus communiquent entre eux sans recourir à des variables partagées.
Le mécanisme IPC fournit deux opérations :
- Envoyer (message) - taille du message fixe ou variable
- Reçu (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 processus de communication inter-processus, chacun doit se nommer explicitement. Dans cette méthode, un lien est établi entre une paire de processus communicants, et entre chaque paire, un seul lien existe.
Communication indirecte
La communication indirecte s'établit uniquement lorsque les processus partagent une boîte aux lettres commune, chaque paire de processus partageant plusieurs liens de communication. Un 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 mémoire partagée entre deux ou plusieurs processus établis en utilisant la mémoire partagée entre tous les processus. Ce type de mémoire doit être protégé les uns des autres en synchronisant les accès sur tous les processus.
FIFO
Communication entre deux processus indépendants. Il s’agit d’une méthode full-duplex, ce qui signifie que le premier processus peut communiquer avec le deuxième processus, et que l’inverse peut également se produire.
Pourquoi IPC ?
Voici les raisons d’utiliser le protocole de communication interprocessus pour le partage d’informations :
- Cela aide à accélérer la modularité
- Computational
- Séparation des privilèges
- Commodité
- Aide le système d'exploitation à communiquer entre eux et à synchroniser leurs actions.
Termes utilisés dans la CIB
Voici quelques termes importants utilisés dans l'IPC :
Semaphores: Un sémaphore est une technique de mécanisme de signalisation. Cette méthode du système d'exploitation autorise ou interdit l'accès à la ressource, qui dépend de la façon dont elle est configurée.
Signals: Il s'agit d'une méthode permettant de communiquer entre plusieurs processus par voie de signalisation. Le processus source enverra un signal reconnu par un numéro et le processus de destination le gérera.
Suggestion de lecture : - Qu’est ce qu' Semaphore? Types binaires et de comptage avec exemple
Qu'est-ce qui ressemble à FIFOS et contrairement à FIFOS
Comme FIFOS | Contrairement au FIFOS |
---|---|
Il suit la méthode FIFO | Méthode pour extraire des messages urgents spécifiques avant qu'ils n'atteignent le front |
FIFO existe indépendamment des processus d’envoi et de réception. | Toujours prêt, vous n'avez donc pas besoin d'ouvrir ou de fermer. |
Permet le transfert de données entre des processus non liés. | Aucun problème de synchronisation entre l'ouverture et la fermeture. |
Résumé
- Définition: La communication inter-processus est utilisée pour échanger des données entre plusieurs threads dans un ou plusieurs processus ou programmes.
- Pipe est largement utilisé pour la communication entre deux processus liés.
- La transmission de messages est un mécanisme permettant à un processus de communiquer et de se synchroniser.
- Une file d'attente de messages est une liste chaînée de messages stockés dans le noyau
- Le processus direct est un type de processus de communication inter-processus, qui doit se nommer explicitement.
- La communication indirecte s'établit uniquement lorsque les processus partagent une boîte aux lettres commune, chaque paire de processus partageant plusieurs liens de communication.
- La mémoire partagée est une mémoire partagée entre deux ou plusieurs processus établis en utilisant la mémoire partagée entre tous les processus.
- La méthode Inter Process Communication permet d’accélérer la modularité.
- Un sémaphore est une technique de mécanisme de signalisation.
- Signaling est une méthode de communication entre plusieurs processus par le biais de la signalisation.
- Comme FIFO, il suit la méthode FIFO, tandis que contrairement à FIFO, il utilise la méthode pour extraire des messages urgents spécifiques avant qu'ils n'atteignent le front.