GNU/Linux >> Tutoriels Linux >  >> Linux

Différence entre page virtuelle et cadre de page ?

La mémoire physique est organisée en CADRES DE PAGE. La taille d'un cadre de page est une puissance de 2 en octets et varie selon les systèmes.

La mémoire logique est organisée en PAGES. La taille de la page correspond à un cadre de page.

Une adresse logique est divisée en un sélecteur de page et un décalage dans la page.

Les pages logiques sont mappées aux cadres de page à l'aide de tables de pages. La structure d'une table de pages varie selon les systèmes. Le sélecteur de pages d'une adresse logique sert d'index dans une table de pages.

Dans la plupart des systèmes, les tables de pages peuvent spécifier des adresses logiques valides qui n'ont pas de cadre de page associé. Il s'agit d'un système de mémoire virtuelle. Si une application tente d'accéder à une telle page, elle déclenche une exception de défaut de page. Le gestionnaire de défauts de page du système d'exploitation doit allouer un cadre de page physique, charger le cadre de page à l'aide des données du stockage secondaire, mettre à jour la table des pages pour mapper la page logique au cadre de page physique nouvellement alloué, et enfin redémarrer l'instruction qui a causé le défaut.

Le système d'exploitation gère les tables de pages. Le CPU (de manière transparente pour l'application) traduit les cadres de page logiques en cadres de page physiques à l'aide de la table des pages.


Le cadre de page est une propriété physique de la mémoire principale. Alors qu'une page virtuelle est... virtuelle.

frame 0  frame 1  frame 2  frame 3  frame 4
----------------------------------------------
|        |        |        |        |        |
|        |        |        |        |        |
---------------------------------------------- Main Memory

Une page (ou page mémoire, ou page virtuelle, ou page logique) est un bloc contigu de longueur fixe de mémoire virtuelle.

Un cadre (ou cadre de mémoire, ou page physique, ou cadre de page) est un bloc de RAM de longueur fixe (c'est-à-dire la mémoire physique, il existe - comme dans "physique". La mémoire virtuelle est inventée pour que nos mathématiques fonctionnent correctement et efficacement afin de gérer la mémoire en toute sécurité).

Notez que le cadre peut ne pas être contigu, mais la page le sera. Nous voulons que le processus, le système d'exploitation gère les adresses consécutives car cela facilite tout. Laissez une puce matérielle dédiée (la MMU) faire correspondre l'adresse virtuelle à la bonne adresse physique et vice versa.

Les adresses virtuelles sont utilisées par le processus, tandis que les adresses physiques sont utilisées par le matériel, c'est-à-dire. le CPU (en plaçant l'adresse dans son bus d'adresse pour demander un accès à la mémoire) et le sous-système RAM (MMU, tables de pages, etc.). Lorsqu'un programme est compilé, le compilateur convertit un code de programme en code compréhensible par la machine et entre ce processus, les adresses les espaces sont définis sous la forme d'adresses virtuelles. Lorsqu'ils sont traités par le processeur, ils sont à nouveau mappés dans les emplacements physiques disponibles en mémoire, qu'il s'agisse de RAM ou de disque dur, à l'aide de la MMU.

PS. Je ne tolère pas l'utilisation du terme cadre de page. Vous vous rendez probablement compte qu'il est source de confusions. Tenez-vous en à 'page' et 'frame', deux mots très simples avec une signification claire.


Linux
  1. Différence entre le shell de connexion et le shell sans connexion ?

  2. La Différence Entre [[ $a ==Z* ]] Et [ $a ==Z* ] ?

  3. Différence entre l'expansion de la tuyauterie et de la commande ?

  4. Différence entre snat et mascarade?

  5. La Différence Entre Nss Et Pam?

Différence entre apt et apt-get expliquée

Différence entre l'utilisateur Sudo et l'utilisateur root ?

Différence entre $HOME et '~' (tilde) ?

différence entre netstat et ss sous linux?

Différence entre ${} et $() dans Bash

différence entre les cgroups et les espaces de noms