Parce que mmu peut être utilisé pour prendre en charge la gestion de la mémoire virtuelle ; mmu est l'abréviation de "Memory Management Unit", qui est le circuit de contrôle utilisé pour gérer la mémoire virtuelle et la mémoire physique dans le processeur central, et est également responsable de la mémoire virtuelle. mappage d'adresses Fournit des mécanismes matériels pour accorder l'accès à la mémoire aux adresses physiques.
L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.
Parce que les systèmes d'exploitation modernes adoptent généralement un mécanisme de gestion de la mémoire virtuelle (Virtual Memory Management), qui nécessite la prise en charge de la MMU (Memory Management Unit) dans le processeur.
MMU (Memory Management Unit) : unité de gestion de la mémoire, qui est le circuit de contrôle utilisé dans l'unité centrale de traitement (CPU) pour gérer la mémoire virtuelle et la mémoire physique. Elle est également chargée de mapper les adresses virtuelles aux adresses physiques et de fournir des mécanismes matériels. pour la mémoire.
La fonction principale de l'unité de gestion de mémoire (MMU) est la conversion d'adresses virtuelles (adresses de mémoire virtuelle) en adresses physiques (adresses physiques). De plus, il peut également mettre en œuvre la protection de la mémoire, le contrôle du cache, l'arbitrage de bus et la commutation de banque.
Mécanisme de travail
CPU transmet l'adresse virtuelle demandée à la MMU, puis la MMU recherche d'abord la relation de traduction dans le cache TLB (Translation Lookaside Buffer), et si l'adresse physique correspondante est trouvé, il y accède directement ; s'il n'est pas trouvé, recherchez et calculez dans la table de traduction d'adresses (Translation Table).
Adresse virtuelle
L'unité de gestion de mémoire moderne partitionne l'espace d'adressage virtuel (la plage d'adresses utilisée par le processeur) en pages. La taille de la page est de 2 à la puissance n, généralement quelques Ko. L'adresse virtuelle est donc divisée en deux parties : le numéro de page virtuelle et le décalage.
Entrée de table de pages (entrée de table de pages)
L'entrée qui stocke le numéro de table de pages physique trouvé dans la table de pages à partir du numéro de page virtuel ci-dessus est l'entrée de table de pages (PTE). PTE occupe généralement 1 mot de longueur, qui contient non seulement le numéro de page physique, mais également le bit d'indicateur de réécriture (bit sale), le bit de contrôle d'accès (bit accédé), le type de processus qui permet la lecture et l'écriture (mode utilisateur/superviseur). , s'il peut être mis en cache et mappé (les deux derniers chiffres du PTE).
Mapping
Méthode de cartographie
Il existe deux méthodes de cartographie, le mappage de segments et le mappage de pages. Le mappage de segments utilise uniquement la table de pages de premier niveau et le mappage de pages utilise la table de pages de premier niveau et la table de pages de deuxième niveau.
Granularité de mappage
Il existe deux granularités de mappage pour le mappage de segments, une section de 1 M et une supersection de 16 M ; les granularités de mappage pour le mappage de pages incluent une petite page de 4 K, une grande page de 64 K et la petite page obsolète de 1 K.
Apprentissage recommandé : 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!