Tube (informatique)

Tube (informatique)
Page d'aide sur l'homonymie Pour les articles homonymes, voir Tube.

En génie logiciel, un tube ou une pipeline est un mécanisme de communication inter-processus sous la forme d'une série de données, octets ou bits, accessibles en FIFO. Le patron de conception qui correspond à ce mécanisme s'appelle le filtre. Les tubes des shell, inventés pour UNIX, permettent de lier la sortie d'un programme à l'entrée du suivant dans les shell et permet, tel quel, de créer des filtres. Ces tubes sont réalisés par l'intermédiaire de mécanisme sous-jacent appelé tubes anonymes. Ces tubes sont détruits lorsque le processus qui les a créés disparait, les tubes nommés sont en revanche liés au système d'exploitation et ils doivent être explicitement détruits. Ce type de mécanisme se retrouve bien sur dans tous les systèmes d'exploitation de type Unix mais aussi dans les systèmes d'exploitation de Microsoft cependant leur sémantique est sensiblement différente. Les tubes sont considérés comme la plus ancienne implémentation non triviale de la programmation modulaire au niveau de l'architecture d'un projet informatique.

Mise en œuvre

Les tubes sont particulièrement efficaces dans les systèmes d'exploitation multitâches, puisque tous les processus chainés sont lancés simultanément. L'acquisition des données est immédiatement traitée par tous les processus successifs sans qu'il soit nécessaire d'accumuler une grande quantité de données. Cela permet aussi de facto de maximiser l'activité des unités de calcul.

Habituellement un mécanisme de synchronisation inter-processus est mis en place, les opérations de lecture ou d'écriture sont bloquantes. Ceci signifie que d'une part l'exécution du processus d'acquisition des données est suspendu jusqu'à ce que toutes les données puissent être écrites dans le processus de destination qui le suit et d'autre part l'exécution du processus de destination est suspendue tant que toutes les données provenant de la source ne sont pas disponibles. Un interblocage peut alors se produire, chacun des processus pouvant attendre l'autre indéfiniment.


Pour des raisons de performance car les processus sont le plus souvent non-synchrones, les interfaces de programmation qui implémentent ces mécanismes se utilisent des tampons FIFO plus ou moins gros. La taille est paramétrable sous UNIX. Ce phénomène se rencontre par exemple au cours d'une compression en format MP3 sur disque dur d'un fichier musical lu sur un CD. Le mécanisme de lecture se fait par bloc et plus rapide que le mécanisme de compression, de ce fait cela permettra, si le tampon est suffisant de retirer le CD du lecteur avant que la compression soit finie.

Implémentation sous Unix

Sous Unix, le tube est implémenté grâce aux appels systèmes pipe(), fork() et exec(). Comme un processus peut envoyer des informations plus rapidement que le suivant ne peut les lire, il existe un buffer géré par le noyau et associé au tube. Lorsque le buffer est plein, le processus qui invoque l'appel write() est bloqué jusqu'à ce qu'un processus lise le contenu du buffer. Sous Linux la taille du buffer est 65536 octets.

Les tubes de Hartman

Les tubes de Hartmann sont un port de ce concept pour les systèmes d'exploitation VM (système d'exploitation), Unix et MVS. Ces tubes sont plus complexes que les traditionnels tubes des shell UNIX, ils permettent la manipulation de tubes ayant plusieurs entrées et plusieurs sorties. La syntaxe liée à leur usage est assez complexe et les risques d'inter-blocages sont plus grands. Ces mises en œuvre sont très rarement utilisés dans les applications UNIX même si les noyaux le supporte. Certains shell UNIX les supportent via des descripteurs de fichier arbitraire. Leur usage est plus simple sur les systèmes d'exploitation d'IBM.


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Tube (informatique) de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • tube — ● n. m. ►UNIX Méthode de redirection sous Unix. Syn. anglais pipe. En fait, un tube est simplement un pseudo fichier dans lequel on lit et on écrit comme dans un fichier normal, pour échanger des données entres des processus. Existe aussi dans d… …   Dictionnaire d'informatique francophone

  • tube nommé — ● loc. m. ►UNIX tube utilisant un fichier pour réaliser les transferts d information. Syn. bancal pipe nommé ( named pipe en anglais) …   Dictionnaire d'informatique francophone

  • Tube nomme — Tube nommé En informatique, le terme tube nommé (calqué sur l anglais named pipe) désigne un concept prolongeant celui des tubes Unix classiques que l on peut trouver sur les systèmes d exploitation de type Unix ou Windows. Il s agit de l une des …   Wikipédia en Français

  • Tube (Unix) — Tube Unix Dans les systèmes d exploitation de type Unix, un tube Unix, ou pipeline, ou pipe est un ensemble de processus chaînés par leurs flux standard, de sorte que la sortie d un processus (stdout) alimente directement l entrée (stdin) du… …   Wikipédia en Français

  • Tube Unix — Dans les systèmes d exploitation de type Unix, un tube Unix, ou pipeline, ou pipe est un ensemble de processus chaînés par leurs flux standard, de sorte que la sortie d un processus (stdout) alimente directement l entrée (stdin) du suivant.… …   Wikipédia en Français

  • Tube electronique — Tube électronique Un tube électronique (vacuum tube en américain ou thermionic valve en anglais), également appelé tube à vide ou même lampe, est un composant électronique actif, généralement utilisé comme amplificateur de signal. Le tube à vide… …   Wikipédia en Français

  • Tube à vide — Tube électronique Un tube électronique (vacuum tube en américain ou thermionic valve en anglais), également appelé tube à vide ou même lampe, est un composant électronique actif, généralement utilisé comme amplificateur de signal. Le tube à vide… …   Wikipédia en Français

  • tube cathodique — ● loc. m. ►AFFICH Canon à électron, sous vide, utilisé par les écrans dit à rayonnement , pour afficher des images mouvantes. Exemples: oscilloscope, téléviseur. Syn. CRT …   Dictionnaire d'informatique francophone

  • Tube de Williams — Un tube de Williams. Un tube de Williams, ou tube de Williams Kilburn (du nom des inventeurs Frederic Calland Williams et Tom Kilburn) est un tube cathodique développé en 1946 ou 1947 et utilisé pour enregistrer des données sous forme binaire. Il …   Wikipédia en Français

  • Tube nommé — En informatique, le terme tube nommé (calqué sur l anglais named pipe) est une mise en œuvre des tubes Unix. Comme les tubes anonymes, les tubes nommés sont des zones de données organisées en FIFO mais contrairement à ceux ci qui sont détruits… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”