Maison Opération et maintenance exploitation et maintenance Linux Quelles sont les trois méthodes de communication entre les processus Linux ?

Quelles sont les trois méthodes de communication entre les processus Linux ?

Jul 23, 2021 pm 04:46 PM
linux 进程间通信

Trois façons de communiquer entre les processus Linux : 1. Communication canalisée Le processus qui envoie des informations est appelé processus d'écriture, et le processus qui reçoit des informations est appelé processus de lecture. 2. La communication par tampon de messages utilise le tampon de messages comme support intermédiaire, et les opérations d'envoi et de réception des deux parties communicantes sont basées sur des messages. 3. Communication en mémoire partagée.

Quelles sont les trois méthodes de communication entre les processus Linux ?

L'environnement d'exploitation de ce tutoriel : système Ubuntu 16.04, ordinateur Dell G3.

3 façons de communication inter-processus sous Linux

Étant donné que différents processus s'exécutent dans différents espaces mémoire. Les modifications de variables par une partie sont invisibles pour l'autre partie. donc. Le transfert d'informations entre les processus ne peut pas être effectué directement via des variables ou d'autres structures de données, et ne peut être réalisé que via une communication inter-processus.

Selon la différence dans la quantité d'informations lors de la communication de processus, la communication de processus peut être divisée en deux grands types : la communication d'informations de contrôle et la communication de grandes quantités d'informations de données. La première est appelée communication de bas niveau et la seconde, communication de haut niveau.

La communication de bas niveau est principalement utilisée pour le transfert d'informations de contrôle telles que la synchronisation, l'exclusion mutuelle, la résiliation, la suspension, etc. entre les processus.

La communication avancée est principalement utilisée pour l'échange et le partage de blocs de données entre les processus. Les communications avancées courantes incluent les pipelines (PIPE), les files d'attente de messages (MESSAGE), la mémoire partagée (SHARED MEM0RY), etc.

Ici, nous comparons principalement les caractéristiques de ces trois méthodes de communication avancées.

Pipeline Communication (PIPE)

Lorsque deux processus communiquent à l'aide de tuyaux. Le processus qui envoie des informations est appelé processus d’écriture. Le processus qui reçoit des informations est appelé processus de lecture. Le support intermédiaire de communication du pipeline est constitué par les fichiers. Ce type de fichier est généralement appelé fichier pipeline. Il relie un processus d'écriture et un processus de lecture comme un tuyau pour établir la communication entre les deux processus. Le processus d'écriture écrit les informations dans le fichier pipe via l'extrémité d'écriture (extrémité d'envoi) ; le processus de lecture lit les informations du fichier pipe jusqu'à l'extrémité de lecture (extrémité de réception). Les deux processus se coordonnent et écrivent et lisent en continu, formant un pipeline dans lequel les deux parties transfèrent des informations via des tuyaux.

Utilisez l'appel système PIPE() pour créer un fichier de canal sans nom, généralement appelé canal sans nom ou PIPE ; utilisez l'appel système MKNOD() pour créer un fichier de canal nommé. Souvent appelé tube nommé ou FIFO. Le canal sans nom est un mécanisme de communication par canal non permanent. Il sera annulé lorsque tous les processus auxquels il a accédé seront terminés. Les canaux sans nom ne peuvent être utilisés qu’entre des processus ayant des liens familiaux. Des canalisations bien connues peuvent exister dans le système pendant longtemps. Il est également prévu pour être utilisé par des processus de toute relation, mais une utilisation inappropriée peut facilement conduire à des erreurs. Par conséquent, le système d'exploitation transmet les droits de gestion du canal nommé au système pour le contrôle. Une fois le fichier canal créé, les opérations de lecture et d'écriture sur le canal peuvent être réalisées par les appels système WRITE() et READ(); la communication est terminée, CLOSE() peut être utilisé pour Le fichier pipeline est fermé.

Communication du tampon de messages (MESSAGE)

Plusieurs processus indépendants peuvent communiquer entre eux via le mécanisme du tampon de messages. Ce type de communication est réalisé avec le tampon de messages comme support intermédiaire. Les opérations d'envoi et de réception des deux parties communicantes sont basées sur des messages. En mémoire, les tampons de messages sont organisés en files d'attente, souvent appelées files d'attente de messages. Une fois créée, la file d'attente de messages peut être partagée par plusieurs processus. Le processus qui envoie un message peut envoyer n'importe quel nombre de messages à la file d'attente de messages spécifiée à tout moment et vérifier si un processus récepteur attend le message qu'il envoie. Si tel est le cas, réveillez-le : et le processus recevant le message peut récupérer le message de la file d'attente de messages désignée lorsqu'il en a besoin. Si la nouvelle n'est pas encore arrivée. Ensuite, il se met en veille et attend.

Communication à mémoire partagée (MÉMOIRE PARTAGÉE)

​​​​Visant les lacunes de la mise en mémoire tampon des messages qui nécessite le processeur pour copier les messages. Le système d'exploitation fournit une méthode de communication pour l'échange direct de données entre les processus : la mémoire partagée. Cette méthode de communication permet à plusieurs processus de communiquer en utilisant le même segment de mémoire (comme support intermédiaire) avec le support de protocoles de communication externes ou de mécanismes de synchronisation et d'exclusion mutuelle. Il s’agit de l’une des méthodes de communication de données les plus efficaces et sa particularité est qu’il n’y a pas de liens intermédiaires. Attachez directement les pages de mémoire partagée. Mappez les espaces d’adressage virtuels respectifs des processus communiquant entre eux. Cela permet à plusieurs processus d'accéder directement à la même page de mémoire physique. C'est comme accéder à votre propre espace privé (mais ce n'est pas réellement privé mais partagé). Par conséquent, cette méthode de communication inter-processus est le moyen le plus rapide d’établir une communication entre les processus d’un même système informatique. Et c’est là que réside sa limite. Autrement dit, les processus partageant la mémoire doivent coexister sur le même système informatique. Seule la mémoire physique peut être partagée.

Caractéristiques (avantages et inconvénients) des trois méthodes : 1. Les tuyaux sans nom sont simples et pratiques. Mais cela se limite au mode de fonctionnement de la communication à sens unique. Et le partage de canaux ne peut être réalisé qu'entre le processus qui l'a créé et ses processus descendants : bien que des canaux nommés puissent être fournis à des processus ayant n'importe quelle relation. Cependant, comme il existe dans le système depuis longtemps, il est sujet à des erreurs s’il est mal utilisé.

2. La mise en mémoire tampon des messages ne peut plus être limitée aux processus parent-enfant. Il permet à n'importe quel processus d'établir une communication inter-processus via une file d'attente de messages partagée. Et le système appelle des fonctions pour réaliser la synchronisation entre l’envoi et la réception des messages. En conséquence, les utilisateurs n'ont plus besoin de prendre en compte les problèmes de synchronisation lorsqu'ils utilisent des tampons de messages pour la communication. Il est facile à utiliser, mais la copie d'informations nécessite du temps CPU supplémentaire. Ne convient pas aux situations comportant de grandes quantités d’informations ou des opérations fréquentes.

3. La mémoire partagée utilise le tampon mémoire pour échanger directement des informations en réponse aux défauts du tampon de messages. Il n'est pas nécessaire de copier et ses avantages sont la rapidité et la grande quantité d'informations. Cependant, la communication en mémoire partagée est réalisée en attachant le tampon de mémoire partagée directement à l'espace d'adressage virtuel du processus. Par conséquent, le problème de synchronisation des opérations de lecture et d’écriture entre ces processus ne peut pas être réalisé par le système d’exploitation. Ce problème doit être résolu par chaque processus à l'aide d'autres outils de synchronisation. De plus, puisque l'entité mémoire existe dans le système informatique. Par conséquent, il ne peut être partagé que par les processus du même système informatique. Peu pratique pour la communication réseau.

Recommandations associées : "Tutoriel vidéo 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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment démarrer Apache Comment démarrer Apache Apr 13, 2025 pm 01:06 PM

Les étapes pour démarrer Apache sont les suivantes: Installez Apache (Commande: Sudo apt-get install Apache2 ou téléchargez-le à partir du site officiel) Start Apache (Linux: Sudo SystemCTL Démarrer Apache2; Windows: Cliquez avec le bouton droit sur le service "APACHE2.4" et SELECT ") Vérifiez si elle a été lancée (Linux: SUDO SYSTEMCTL STATURE APACHE2; (Facultatif, Linux: Sudo SystemCTL

Que faire si le port Apache80 est occupé Que faire si le port Apache80 est occupé Apr 13, 2025 pm 01:24 PM

Lorsque le port Apache 80 est occupé, la solution est la suivante: découvrez le processus qui occupe le port et fermez-le. Vérifiez les paramètres du pare-feu pour vous assurer qu'Apache n'est pas bloqué. Si la méthode ci-dessus ne fonctionne pas, veuillez reconfigurer Apache pour utiliser un port différent. Redémarrez le service Apache.

Comment surveiller les performances de Nginx SSL sur Debian Comment surveiller les performances de Nginx SSL sur Debian Apr 12, 2025 pm 10:18 PM

Cet article décrit comment surveiller efficacement les performances SSL des serveurs Nginx sur les systèmes Debian. Nous utiliserons NginxExporter pour exporter des données d'état NGINX à Prometheus, puis l'afficher visuellement via Grafana. Étape 1: Configuration de Nginx Tout d'abord, nous devons activer le module Stub_Status dans le fichier de configuration NGINX pour obtenir les informations d'état de Nginx. Ajoutez l'extrait suivant dans votre fichier de configuration Nginx (généralement situé dans /etc/nginx/nginx.conf ou son fichier incluant): emplacement / nginx_status {Stub_status

Comment configurer un bac de recyclage dans le système Debian Comment configurer un bac de recyclage dans le système Debian Apr 12, 2025 pm 10:51 PM

Cet article présente deux méthodes de configuration d'un bac de recyclage dans un système Debian: une interface graphique et une ligne de commande. Méthode 1: Utilisez l'interface graphique Nautilus pour ouvrir le gestionnaire de fichiers: Recherchez et démarrez le gestionnaire de fichiers Nautilus (généralement appelé "fichier") dans le menu de bureau ou d'application. Trouvez le bac de recyclage: recherchez le dossier de bac de recyclage dans la barre de navigation gauche. S'il n'est pas trouvé, essayez de cliquer sur "Autre emplacement" ou "ordinateur" pour rechercher. Configurer les propriétés du bac de recyclage: cliquez avec le bouton droit sur "Recycler le bac" et sélectionnez "Propriétés". Dans la fenêtre Propriétés, vous pouvez ajuster les paramètres suivants: Taille maximale: Limitez l'espace disque disponible dans le bac de recyclage. Temps de rétention: définissez la préservation avant que le fichier ne soit automatiquement supprimé dans le bac de recyclage

Comment redémarrer le serveur Apache Comment redémarrer le serveur Apache Apr 13, 2025 pm 01:12 PM

Pour redémarrer le serveur Apache, suivez ces étapes: Linux / MacOS: Exécutez Sudo SystemCTL Restart Apache2. Windows: Exécutez net stop apache2.4 puis net start apache2.4. Exécuter netstat -a | Findstr 80 pour vérifier l'état du serveur.

Comment optimiser les performances de Debian Readdir Comment optimiser les performances de Debian Readdir Apr 13, 2025 am 08:48 AM

Dans Debian Systems, les appels du système ReadDir sont utilisés pour lire le contenu des répertoires. Si ses performances ne sont pas bonnes, essayez la stratégie d'optimisation suivante: simplifiez le nombre de fichiers d'annuaire: divisez les grands répertoires en plusieurs petits répertoires autant que possible, en réduisant le nombre d'éléments traités par appel ReadDir. Activer la mise en cache de contenu du répertoire: construire un mécanisme de cache, mettre à jour le cache régulièrement ou lorsque le contenu du répertoire change et réduire les appels fréquents à Readdir. Les caches de mémoire (telles que Memcached ou Redis) ou les caches locales (telles que les fichiers ou les bases de données) peuvent être prises en compte. Adoptez une structure de données efficace: si vous implémentez vous-même la traversée du répertoire, sélectionnez des structures de données plus efficaces (telles que les tables de hachage au lieu de la recherche linéaire) pour stocker et accéder aux informations du répertoire

L'importance de Debian Sniffer dans la surveillance du réseau L'importance de Debian Sniffer dans la surveillance du réseau Apr 12, 2025 pm 11:03 PM

Bien que les résultats de la recherche ne mentionnent pas directement "Debiansniffer" et son application spécifique dans la surveillance du réseau, nous pouvons en déduire que "Sniffer" se réfère à un outil d'analyse de capture de paquets de réseau, et son application dans le système Debian n'est pas essentiellement différente des autres distributions Linux. La surveillance du réseau est cruciale pour maintenir la stabilité du réseau et l'optimisation des performances, et les outils d'analyse de capture de paquets jouent un rôle clé. Ce qui suit explique le rôle important des outils de surveillance du réseau (tels que Sniffer Running dans Debian Systems): La valeur des outils de surveillance du réseau: Faute-défaut Emplacement: surveillance en temps réel des métriques du réseau, telles que l'utilisation de la bande passante, la latence, le taux de perte de paquets, etc.

Comment apprendre Debian Syslog Comment apprendre Debian Syslog Apr 13, 2025 am 11:51 AM

Ce guide vous guidera pour apprendre à utiliser Syslog dans Debian Systems. Syslog est un service clé dans les systèmes Linux pour les messages du système de journalisation et du journal d'application. Il aide les administrateurs à surveiller et à analyser l'activité du système pour identifier et résoudre rapidement les problèmes. 1. Connaissance de base de Syslog Les fonctions principales de Syslog comprennent: la collecte et la gestion des messages journaux de manière centralisée; Prise en charge de plusieurs formats de sortie de journal et des emplacements cibles (tels que les fichiers ou les réseaux); Fournir des fonctions de visualisation et de filtrage des journaux en temps réel. 2. Installer et configurer syslog (en utilisant RSYSLOG) Le système Debian utilise RSYSLOG par défaut. Vous pouvez l'installer avec la commande suivante: SudoaptupDatesud

See all articles