ScholarGate
Assistant

Mémoire virtuelle et pagination

La mémoire virtuelle attribue à chaque programme son propre espace d'adressage vaste et contigu que le matériel et le système d'exploitation mappent sur la mémoire physique en pages de taille fixe, offrant isolation, protection et l'illusion de disposer de plus de mémoire qu'il n'en existe physiquement.

Trouver un sujet avec PaperMindBientôtFind papers & topics
Tools & resources
Télécharger les diapositives
Learn & explore
VidéoBientôt

Definition

La mémoire virtuelle est une technique de gestion de la mémoire qui mappe les adresses virtuelles utilisées par un programme aux adresses de mémoire physique via des tables de pages, divisant la mémoire en pages de taille fixe et permettant aux pages de résider en mémoire physique ou sur un support de stockage secondaire (backing store) selon les besoins.

Scope

Ce sujet couvre la traduction d'adresses via les tables de pages, le tampon de traduction anticipée (TLB) qui met en cache les traductions, les fautes de page et la pagination à la demande, le remplacement de pages et le principe de l'ensemble de travail, ainsi que la protection qu'offre la mémoire virtuelle. Il se situe à la frontière entre l'architecture et les systèmes d'exploitation. Il exclut le stockage sur fichier des données paginées (systèmes de fichiers) et la mise en cache de données sur puce (organisation et politiques de cache), bien qu'il interagisse avec les deux.

Core questions

  • Comment les adresses virtuelles sont-elles traduites en adresses physiques via les tables de pages ?
  • Comment le TLB accélère-t-il la traduction, et que se passe-t-il en cas d'échec du TLB (TLB miss) ?
  • Que se produit-il lors d'une faute de page, et comment la pagination à la demande est-elle gérée ?
  • Comment le concept d'ensemble de travail guide-t-il le remplacement de pages et prévient-il le thrashing ?

Key concepts

  • espaces d'adressage virtuel et physique
  • pages et cadres de page
  • tables de pages
  • tampon de traduction anticipée (TLB)
  • fautes de page et pagination à la demande
  • remplacement de pages
  • ensemble de travail et thrashing
  • protection de la mémoire

Key theories

Modèle de l'ensemble de travail
L'ensemble de travail est l'ensemble des pages qu'un processus référence sur une fenêtre de temps récente ; maintenir l'ensemble de travail de chaque processus actif résident en mémoire physique évite le thrashing, dans lequel une pagination excessive effondre les performances, et informe les décisions de remplacement et d'admission.

Mechanisms

L'adresse virtuelle d'un programme est divisée en un numéro de page et un décalage (offset). Le numéro de page indexe les tables de pages (souvent multi-niveaux) pour trouver le cadre physique ; le TLB met en cache les traductions récentes pour éviter de parcourir les tables à chaque accès. Si une page référencée n'est pas résidente, une faute de page transfère le contrôle au système d'exploitation, qui récupère la page du support de stockage secondaire et peut en expulser une autre selon une politique de remplacement guidée par la localité et le comportement de l'ensemble de travail.

Clinical relevance

La mémoire virtuelle est fondamentale pour les systèmes d'exploitation modernes : elle isole les processus les uns des autres pour la sécurité et la stabilité, permet à de nombreux programmes de partager la mémoire physique et autorise l'exécution de programmes plus grands que la RAM physique. Le comportement du TLB et des fautes de page affecte significativement les performances, et l'organisation de l'espace d'adressage sous-tend les défenses de protection et de sécurité de la mémoire.

History

La mémoire virtuelle est apparue avec l'ordinateur Atlas à Manchester au début des années 1960, introduisant la pagination et le mécanisme de faute de page. Le modèle de l'ensemble de travail de Denning en 1968 a fourni une explication fondée sur des principes de la localité et du thrashing. Le support matériel via les TLB et les tables de pages multi-niveaux, et plus tard des fonctionnalités telles que les grandes pages, ont rendu la mémoire virtuelle omniprésente dans les systèmes à usage général.

Key figures

  • Peter J. Denning
  • Maurice Wilkes
  • John L. Hennessy
  • Abraham Silberschatz

Related topics

Seminal works

  • denning1968
  • hennessy2019
  • silberschatz2018

Frequently asked questions

Que se passe-t-il lors d'une faute de page ?
Une faute de page se produit lorsqu'un programme accède à une page virtuelle qui n'est pas actuellement en mémoire physique. Le matériel transfère le contrôle au système d'exploitation, qui localise la page sur le support de stockage secondaire, l'amène dans un cadre libre ou expulsé, met à jour les tables de pages et reprend le programme comme si de rien n'était.
Qu'est-ce que le thrashing ?
Le thrashing est un effondrement des performances lorsque les ensembles de travail combinés des processus actifs dépassent la mémoire physique, de sorte que le système passe la majeure partie de son temps à paginer des données plutôt qu'à effectuer un travail utile. Maintenir les ensembles de travail résidents, ou réduire la charge, permet de l'éviter.

Methods for this concept

Related concepts