Maison Opération et maintenance exploitation et maintenance Linux Quel est le mécanisme de mémoire virtuelle de Linux

Quel est le mécanisme de mémoire virtuelle de Linux

May 14, 2023 pm 12:01 PM
linux

Mécanisme de mémoire virtuelle Linux :

1. Chaque processus possède son propre espace mémoire 4G indépendant, et l'espace mémoire de chaque processus a une structure similaire.

La gestion de la mémoire Linux adopte la gestion des pages, en utilisant des tables de pages à plusieurs niveaux. Le mécanisme de traduction d'adresses dynamique, la mémoire principale et la mémoire auxiliaire réalisent conjointement la mémoire virtuelle. Il établira son propre espace mémoire, et les données, le code, etc. de ce processus seront copiés du disque vers son propre espace de processus. Quelles données se trouvent où ? Ils sont tous enregistrés par task_struct dans la table de contrôle de processus. Il y a une liste chaînée enregistrée dans task_struct, et l'allocation d'espace mémoire dans l'enregistrement est enregistrée,

Les adresses contenant des données, les adresses dépourvues de données, celles qui sont lisibles et celles qui sont accessibles en écriture peuvent être enregistrées via cette liste chaînée. L'espace mémoire alloué par chaque processus peut être mappé avec l'espace disque correspondant.

2. Chaque programme peut voir un espace d'adressage complet et continu. Ces espaces ne sont pas directement liés à la mémoire physique, mais le système d'exploitation fournit un concept abstrait de mémoire,

. Cela permet à chaque processus de disposer d'un espace d'adressage continu et complet. Pendant le processus d'exécution du programme, la conversion de l'adresse virtuelle en adresse physique est terminée.

Nous savons également que l'espace d'adressage d'un processus est segmenté et qu'il existe des segments de données, des segments de code, des segments bbs, des tas, des piles, etc. Chaque segment a un rôle spécifique.

En même temps, l'ordinateur n'a pas beaucoup de mémoire (n processus doivent correspondre à n*4G de mémoire). Pour créer un processus, vous devez copier les fichiers programme sur le disque dans la mémoire correspondant au processus,

.

Dans le cas où un programme correspond à plusieurs processus, la mémoire est gaspillée.

3. L'espace mémoire 4G de chaque processus n'est qu'un espace mémoire virtuel. Chaque fois que vous accédez à une adresse dans l'espace mémoire, vous devez traduire l'adresse en une adresse physique réelle. Tous les processus partagent la même mémoire physique,

Quel est le mécanisme de mémoire virtuelle de Linux. Chaque processus mappe et stocke uniquement l'espace mémoire virtuel dont il a actuellement besoin dans la mémoire physique. Le processus doit savoir quelles adresses mémoire se trouvent dans la mémoire physique, lesquelles ne le sont pas et où elles se trouvent dans la mémoire physique,

. La table des pages doit être enregistrée. Chaque entrée de la table des pages est divisée en deux parties. La première partie enregistre si la page est dans la mémoire physique. La deuxième partie enregistre l'adresse de la mémoire physique lorsque le processus accède à une adresse virtuelle. ,

Vérifiez la table des pages. Si les données correspondantes ne sont pas dans la mémoire physique, le processus de traitement des exceptions de page manquante consiste à copier les données requises par le processus du disque vers la mémoire physique,

Si la mémoire est pleine , s'il n'y a pas d'espace libre, recherchez une page à écraser. Bien entendu, si la page écrasée a été modifiée, cette page doit être réécrite sur le disque.

4. L'espace mémoire de chaque processus est cohérent et fixe, de sorte que l'éditeur de liens peut définir l'adresse mémoire lors de la liaison du fichier d'exécution, sans avoir à se soucier de l'adresse mémoire réelle finale de ces données,

Quel est le mécanisme de mémoire virtuelle de Linux Cela a une mémoire indépendante Avantages de l'espace : lorsque différents processus utilisent le même code, comme le code d'un fichier de bibliothèque, une seule copie de ce code peut être stockée dans la mémoire physique,

Différents processus n'ont besoin de mapper leur propre mémoire virtuelle pour économiser de la mémoire que lorsque le programme doit allouer de l'espace mémoire continu

. Seul l'espace contigu doit être alloué dans l'espace mémoire virtuelle sans avoir besoin d'espace contigu dans la mémoire physique réelle, et la fragmentation peut être utilisée.

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
Nordhold: Système de fusion, expliqué
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines 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)

Sujets chauds

Tutoriel Java
1673
14
Tutoriel PHP
1278
29
Tutoriel C#
1257
24
Architecture Linux: dévoiler les 5 composants de base Architecture Linux: dévoiler les 5 composants de base Apr 20, 2025 am 12:04 AM

Les cinq composants de base du système Linux sont: 1. Kernel, 2. Bibliothèque système, 3. Utilitaires système, 4. Interface utilisateur graphique, 5. Applications. Le noyau gère les ressources matérielles, la bibliothèque système fournit des fonctions précompilées, les utilitaires système sont utilisés pour la gestion du système, l'interaction GUI fournit une interaction visuelle et les applications utilisent ces composants pour implémenter des fonctions.

VSCODE Précédent la touche de raccourci suivante VSCODE Précédent la touche de raccourci suivante Apr 15, 2025 pm 10:51 PM

VS CODE Utilisation de la clé de raccourci en une étape / prochaine: une étape (arrière): Windows / Linux: Ctrl ←; macOS: cmd ← Étape suivante (vers l'avant): Windows / Linux: Ctrl →; macOS: CMD →

Comment vérifier l'adresse de l'entrepôt de Git Comment vérifier l'adresse de l'entrepôt de Git Apr 17, 2025 pm 01:54 PM

Pour afficher l'adresse du référentiel GIT, effectuez les étapes suivantes: 1. Ouvrez la ligne de commande et accédez au répertoire du référentiel; 2. Exécutez la commande "git Remote -v"; 3. Affichez le nom du référentiel dans la sortie et son adresse correspondante.

Comment exécuter le code Java dans le bloc-notes Comment exécuter le code Java dans le bloc-notes Apr 16, 2025 pm 07:39 PM

Bien que le bloc-notes ne puisse pas exécuter directement le code Java, il peut être réalisé en utilisant d'autres outils: à l'aide du compilateur de ligne de commande (Javac) pour générer un fichier bytecode (filename.class). Utilisez l'interpréteur Java (Java) pour interpréter ByteCode, exécuter le code et sortir le résultat.

Comment exécuter sublime après avoir écrit le code Comment exécuter sublime après avoir écrit le code Apr 16, 2025 am 08:51 AM

Il existe six façons d'exécuter du code en sublime: via les raccourcis clavier, les menus, les systèmes de construction, les lignes de commande, définir des systèmes de construction par défaut et les commandes de construction personnalisées et exécuter des fichiers / projets individuels en cliquant avec le bouton droit sur des projets / fichiers. La disponibilité du système de construction dépend de l'installation du texte sublime.

Quel est le but principal de Linux? Quel est le but principal de Linux? Apr 16, 2025 am 12:19 AM

Les principales utilisations de Linux comprennent: 1. Système d'exploitation du serveur, 2. Système intégré, 3. Système d'exploitation de bureau, 4. Environnement de développement et de test. Linux excelle dans ces domaines, offrant des outils de stabilité, de sécurité et de développement efficaces.

Code d'installation de Laravel Code d'installation de Laravel Apr 18, 2025 pm 12:30 PM

Pour installer Laravel, suivez ces étapes dans Séquence: Installer Composer (pour MacOS / Linux et Windows) Installez Laravel Installer Créer une nouvelle application d'accès au service de démarrage du projet (URL: http://127.0.0.1:8000) Configurer la connexion de la base de données (si nécessaire)

Installation du logiciel GIT Installation du logiciel GIT Apr 17, 2025 am 11:57 AM

L'installation du logiciel GIT comprend les étapes suivantes: Téléchargez le package d'installation et exécutez le package d'installation pour vérifier la configuration d'installation Git Installation Git Bash (Windows uniquement)

See all articles