Linux dispose de 5 modules principaux : 1. Le module de planification des processus, qui est principalement utilisé pour gérer et contrôler le processeur utilisé par le processus ; 2. Le module de communication inter-processus, qui est principalement utilisé pour contrôler la synchronisation, le partage de données et le partage de données. entre différents processus dans l'espace utilisateur ; 3. Module de gestion de la mémoire, qui utilise un mécanisme de stockage virtuel avancé pour réaliser la gestion du stockage de plusieurs processus ;
L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.
Le noyau Linux contient cinq sous-modules principaux : le module de planification des processus, le module de communication inter-processus, le module de gestion de la mémoire, le module de système de fichiers et le module d'interface réseau.
1. Module de planification des processus
Linux utilise les processus comme unité de base d'allocation des ressources système et adopte un algorithme avancé de processus de priorité dynamique pour garantir la rationalité de chaque processus utilisant le processeur. Le module de planification des processus gère et contrôle principalement le processeur utilisé par le processus.
【Création de processus】:
Lors de la programmation dans un environnement Linux, la fonction fork()/vfork() est généralement utilisée (fork consiste à créer un processus enfant et à copier les données mémoire du processus parent dans le processus enfant ; vfork crée un processus enfant et l'utilise avec le partage de données mémoire du processus parent pour créer un nouveau processus. Bien sûr, il s'agit d'une fonction dans l'espace utilisateur. Il appellera l'appel système clone() dans le noyau. , qui est contrôlé par la fonction clone(), continue d'appeler do_fork() pour terminer la création du processus.
fork()/vfork()/_clone--->clone()--->do_fork()--->copy_process()
【Annulation du processus】:
Une fois le processus terminé, le noyau doit être averti afin que le noyau puisse libérer les ressources possédées par le processus, y compris la mémoire, les fichiers ouverts et d'autres ressources telles que les sémaphores. La manière générale de terminer un processus consiste à appeler la fonction de bibliothèqueexit(), qui libère les ressources allouées par la bibliothèque de fonctions C, exécute chaque fonction enregistrée par le programmeur et termine l'appel système qui récupère le processus du système. .
【Commutation de processus】 :
La commutation de processus est également appelée commutation de tâche, commutation de contexte. Il s'agit du comportement dans lequel, afin de contrôler l'exécution d'un processus, le noyau suspend le processus en cours d'exécution sur le processeur et reprend l'exécution d'un processus précédemment suspendu. Essentiellement, chaque commutateur de processus se compose de deux parties :
【Planification des processus】 :
Dans Linux moderne, l'algorithme de planification peut sélectionner un processus à exécuter dans un délai fixe (quel que soit le nombre de processus exécutables). Tout d'abord, il faut savoir que les processus peuvent être divisés en processus en temps réel et processus ordinaires. Chaque processus Linux est toujours planifié selon les types de planification suivants : Processus en temps réel premier entré, premier sorti, processus en temps réel de rotation des tranches de temps, processus de partage de temps ordinaire. Les algorithmes de planification diffèrent considérablement selon qu'il s'agit d'un processus normal ou d'un processus en temps réel.
2. Module de communication inter-processus
La communication inter-processus est principalement utilisée pour contrôler la synchronisation, le partage de données et l'échange dans l'espace utilisateur entre différents processus. Étant donné que différents processus utilisateur ont des espaces de processus différents, la communication entre les processus doit être réalisée à l'aide du relais du noyau. Normalement, un processus est suspendu pendant qu'il attend la fin d'une opération matérielle. Lorsque l'opération matérielle est terminée, le processus reprend et ce qui coordonne ce processus est le mécanisme de communication inter-processus. Le module de communication inter-processus garantit que Linux prend en charge une variété de mécanismes de communication inter-processus, notamment les canaux, les canaux nommés, files d'attente de messages, sémaphores et mémoire partagée, etc.Le module de gestion de la mémoire de Linux utilise le mécanisme avancé de stockage virtuel
pour réaliser la gestion du stockage de plusieurs processus. Il fournit des mesures de protection du stockage très fiables et accorde différentes autorisations aux processus. Les utilisateurs ne peuvent pas accéder directement aux programmes et aux données du système, garantissant ainsi la sécurité du système. Dans le même temps, chaque processus utilisateur se voit attribuer un espace d'adressage virtuel indépendant.
Le module de système de fichiers de Linux adopte la technologie avancée Virtual File System (VFS), qui protège les différences entre les différents systèmes de fichiers et fournit des solutions pour traiter divers systèmes de fichiers. interface unifiée et prend en charge plus de 90 systèmes de fichiers physiques différents. Dans le même temps, Linux traite divers périphériques matériels comme des fichiers spéciaux et gère les périphériques de la même manière que les fichiers, ce qui est très pratique et efficace.
5. Module d'interface réseau
Linux possède les fonctions réseau les plus puissantes. Le module d'interface réseau implémente la communication réseau entre les ordinateurs via le mécanisme Socket(Socket) et utilise le modèle de couche réseau pour prendre en charge plusieurs protocoles réseau et périphériques matériels réseau.
L'interface réseau permet la mise en œuvre de diverses normes réseau et la prise en charge de divers matériels réseau. Les interfaces réseau sont généralement divisées en protocoles réseau et pilotes réseau. La partie protocole réseau est responsable de la mise en œuvre de tous les protocoles de transport réseau possibles. Les pilotes de périphériques réseau sont principalement responsables de la communication avec les périphériques matériels. Chaque périphérique matériel réseau possible a un pilote de périphérique correspondant
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!