Maison  >  Article  >  Opération et maintenance  >  Qu’est-ce qu’un pipeline sous Linux ?

Qu’est-ce qu’un pipeline sous Linux ?

青灯夜游
青灯夜游original
2019-12-25 18:27:578404parcourir

Qu’est-ce qu’un pipeline sous Linux ?

Pipeline est un mécanisme de communication inter-processus hérité par Linux d'Unix. C'est un mécanisme de communication important aux débuts d'Unix. L’idée est de créer un fichier partagé en mémoire afin que les deux interlocuteurs puissent utiliser ce fichier partagé pour transférer des informations. Cette méthode présentant les caractéristiques d'une transmission de données unidirectionnelle, ce fichier partagé utilisé pour transmettre des messages est appelé « pipeline ».

Dans l'implémentation spécifique des pipes, il existe des "pipes anonymes" et des "pipes nommés" selon que les fichiers utilisés pour la communication portent ou non des noms.

La différence entre les tuyaux et la mémoire partagée

À première vue, il semble qu'il n'y ait pas beaucoup de différence entre les tuyaux et la mémoire partagée. Voici une introduction à la différence. entre les deux :

● Le pipeline nécessite quatre copies de données entre le noyau et l'espace utilisateur : copiez les données du buf dans l'espace utilisateur vers le noyau -> Le noyau copie les données dans la mémoire -> ; Mémoire vers le noyau -> ; Noyau vers l'espace utilisateur buf. La mémoire partagée ne copie les données que deux fois : espace utilisateur vers la mémoire -> mémoire vers l'espace utilisateur.

● Le pipeline est implémenté à l'aide d'une file d'attente circulaire et les données peuvent être transmises en continu sans aucune limite de taille. La taille des données transférées à chaque fois que la mémoire partagée est fixe ;

● La mémoire partagée peut accéder de manière aléatoire à n'importe quel emplacement du fichier mappé, tandis que le pipeline ne peut lire et écrire que de manière séquentielle ; Le pipeline peut effectuer le traitement des données de manière indépendante. Mécanismes de livraison et de notification, la mémoire partagée nécessite l'utilisation d'autres méthodes de communication pour la livraison des messages.

En d'autres termes, la plus grande différence entre les deux est la suivante : la zone de mémoire partagée est la forme disponible la plus rapide d'IPC. Une fois qu'une telle zone de mémoire est mappée à l'espace d'adressage du processus qui la partage, le transfert de. les données entre ces processus passent, vous n'avez plus besoin d'exécuter d'appels système dans le noyau pour vous transmettre les données, ce qui vous fait gagner du temps.

Articles et tutoriels connexes recommandés :

Tutoriel Linux

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn