Tube anonyme

En génie logiciel, un tube anonyme ou canal de communication[1] est un des mécanismes de gestion de flux de données appelé tube. Ce mécanisme inventé pour UNIX est principalement utilisé dans la communication inter-processus. Ouvrir un tube anonyme permet de créer un flux de donnée unidirectionnel FIFO entre un processus et un autre. Ces tubes sont détruits lorsque le processus qui les a créés disparait, contrairement aux tubes nommés qui sont liés au système d'exploitation et qui doivent être explicitement détruits. Pour établir une communication Full-duplex, c'est-à-dire bi-directionnelle, chaque processus doit réciproquement créer un tube anonyme.

Ce mécanisme permet la création de filtres.

UnixModifier

Ce mécanisme a été mis en place pour la plupart des systèmes d'exploitation de type Unix. Un tube anonyme est créé grâce à un appel système qui retourne un descripteur de fichier à la suite de la création d'un Fork qui permet d'assigner à chacun des processus son rôle de récepteur ou d'émetteur.

En langage C, On créé un pipe avec l'appel système Unix de même nom, qui créé deux descripteurs de fichiers permettant d'assurer une communication bidirectionnelle, par exemple lors de la création d'un sous-process:

int fd[2];
pipe(fd);

Microsoft WindowsModifier

L'API de Windows permet également de créer des tubes anonymes.

Voir aussiModifier

  • Tube nommé, qui fonctionnent de la même façon, mais dispose d'un nom qui permet la communication entre deux processes appartenant à des arborescences différentes et ne partageant pas de descripteur de fichier. Bien que ces deux types de tubes partagent la même implémentation (Un nom temporaire étant utilisé pour les tubes anonymes), seuls les tubes nommés sont explicitement modélisé dans CIM Schema, et par la classe CIM_FIFOPipeFile[2].
  • Tube (shell), qui sont implémentés au moyen d'un tube anonyme.

RéférencesModifier

  1. Termium, Bureau de la traduction du gouvernement du Canada
  2. Class CIM_FIFOPipeFile extends CIM_LogicalFile