Tubes de communication
Un tube (pipe en anglais)
permet de faire communiquer deux processus. Le tube est représenté par
une barre verticale (touches [Alt Gr] 6 sur un clavier AZERTY) située
entre deux commandes Unix. Le résultat de la commande de gauche
va partir dans le tube, tandis que la commande de droite va en extraire les
données afin de les traiter. Pipe
Les figures 12 et 13 représentent le mécanisme
interne associé au tube de communication.
Figure 12 : Mécanisme interne du
tube de communication - Première étape
Figure 13 : Mécanisme interne du
tube de communication - Deuxième étape
Quelles que soient les commandes présentes de chaque
côté du tube, le shell de travail détecte
le caractère | sur la ligne de commande et va
engendrer un shell enfant (1) qui, à son
tour, fait de même (2).
Le premier shell enfant (PID=205) dissocie sa sortie standard
du terminal et la connecte sur l’entrée du tube (3). Le deuxième shell enfant
(PID=206) dissocie son entrée standard du terminal
et la connecte sur la sortie du tube (4).
Chaque shell enfant va se remplacer avec sa commande (5a et 5b).
Chaque commande commence alors à s’exécuter. Lorsque
la commande who écrit
sur sa sortie standard, les messages partent dans le tube (6a). Parallèlement, la commande mail lit
son entrée standard (6b),
ce qui provoque l’extraction des données contenues dans
le tube.
Quelques ...