Résumé
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 sûr 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. 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.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Cours associés (2)
COM-490: Large-scale data science for real-world data
This hands-on course teaches the tools & methods used by data scientists, from researching solutions to scaling up prototypes to Spark clusters. It exposes the students to the entire data science pipe
CS-307: Introduction to multiprocessor architecture
Multiprocessors are a core component in all types of computing infrastructure, from phones to datacenters. This course will build on the prerequisites of processor design and concurrency to introduce
Séances de cours associées (16)
Processeurs multifilés
Couvre les bases des processeurs multifiltres, y compris la conception, l'impact sur la performance et l'utilisation des pipelines.
Tuyauterie de base
Explore la tuyauterie de base dans les circuits, améliorant la vitesse et le débit avec de multiples opérations effectuées simultanément.
Afficher plus
Publications associées (40)

Determining an optimum quantity of interleaved instruction streams of defined coroutines

Anastasia Ailamaki, Georgios Psaropoulos

A method for optimizing memory access for database opera­tions is provided. The method may include performing a first database operation by at least executing a first instruction stream associated with the first database operation. The first database opera ...
2023
Afficher plus
Concepts associés (6)
Flux (informatique)
En informatique, un flux (en stream) est une suite infinie d'éléments gérés de façon temporelle. Un flux présente ainsi une analogie avec une bande transporteuse où les éléments sont traités séquentiellement, plutôt que globalement. Les flux ne sont pas traités comme les lots de données - en effet les fonctions usuelles n'y fonctionnent pas de façon globale - parce qu'ils sont des données potentiellement illimitées et non pas des données classiques (par définition finies).
Tube nommé
En informatique, le terme tube nommé (calqué sur l'anglais ) 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 lorsque le processus qui les a créés disparait, les tubes nommés sont liés au système d'exploitation et ils doivent être explicitement détruits. Ce type de mécanisme se retrouve bien sûr 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.
Pipeline (computing)
In computing, a pipeline, also known as a data pipeline, is a set of data processing elements connected in series, where the output of one element is the input of the next one. The elements of a pipeline are often executed in parallel or in time-sliced fashion. Some amount of buffer storage is often inserted between elements. Computer-related pipelines include: Instruction pipelines, such as the classic RISC pipeline, which are used in central processing units (CPUs) and other microprocessors to allow overlapping execution of multiple instructions with the same circuitry.
Afficher plus