Définition de la mémoire virtuelle : qu'est-ce que la mémoire virtuelle ?

29 mars 2024

La mémoire virtuelle est une technique de système informatique qui donne un application l'impression qu'il dispose d'une mémoire de travail (ou d'un espace d'adressage) contiguë même si elle peut être fragmentée et même s'étendre dans l'espace de stockage sur un disque. Essentiellement, cela permet d’utiliser efficacement une plus grande quantité de mémoire que celle qui pourrait être physiquement disponible sur le système.

Comment fonctionne la mémoire virtuelle ?

La mémoire virtuelle englobe plusieurs fonctionnalités qui enrichissent l'espace de stockage. Voici comment cela fonctionne :

  1. Fichier d'échange ou espace d'échange. La mémoire virtuelle utilise une partie du disque dur de l'ordinateur (ou SSD) pour étendre son RAM. Cet espace sur le disque est souvent appelé fichier d'échange dans Windows ou espace d'échange dans Windows. UNIX/Systèmes Linux.
  2. Pagination et échange. Le le système d'exploitation déplace les données entre le disque et la RAM dans des unités appelées « pages ». Lorsqu'un programme a besoin d'accéder à des données qui ne sont pas actuellement dans la RAM, le système déplace les données qui n'ont pas été utilisées récemment vers le disque (échange ou pagination) et charge les données nécessaires dans la RAM (pagination).
  3. Unité de gestion de la mémoire (MMU). La MMU est un composant matériel responsable de la gestion de la mémoire virtuelle. Il traduit les adresses virtuelles en adresses physiques. Chaque programme possède son propre espace d'adresses virtuelles, qui sont mappées sur des adresses physiques par la MMU.

Avantages et inconvénients de l'utilisation de la mémoire virtuelle

La mémoire virtuelle est la pierre angulaire de l'informatique moderne, augmentant la capacité apparente de la mémoire physique et facilitant le multitâche transparent entre diverses applications. Alors qu'il offre flexEn termes de fiabilité, de stabilité du système et de sécurité renforcée, cela peut entraîner des goulots d'étranglement en termes de performances, en particulier lorsque le matériel du système n'est pas optimisé pour les activités de pagination intensives.

Vous trouverez ci-dessous un aperçu des avantages et des inconvénients de l’utilisation de cette technologie.

Avantages

Les avantages de la mémoire virtuelle incluent :

  • Efficacité dans l'utilisation de la mémoire. La mémoire virtuelle permet une utilisation plus efficace de la mémoire physique. Il permet aux systèmes d'exécuter des applications nécessitant plus de mémoire que ce qui est physiquement disponible en utilisant l'espace disque comme une extension fonctionnelle plus lente de la RAM.
  • Gestion simplifiée de la mémoire. Pour les programmeurs, la mémoire virtuelle simplifie la gestion de la mémoire car ils n'ont pas à gérer directement l'allocation de mémoire. Le système d'exploitation gère la complexité du mappage d'adresses virtuelles vers des adresses physiques, permettant aux développeurs de se concentrer sur d'autres aspects de leurs applications.
  • Sécurité renforcée. En isolant l'espace mémoire de chaque application, la mémoire virtuelle ajoute également une couche de sécurité. Il empêche une application d'accéder aux données d'une autre, ce qui peut protéger contre certains types de bogues logiciels ou d'exploits malveillants.
  • Surengagement de mémoire. Les systèmes de mémoire virtuelle permettent d'allouer aux applications plus de mémoire que ce qui est physiquement présent en utilisant des mécanismes tels que le surengagement et la surallocation de mémoire. Ces approches sont utiles dans les environnements où les applications peuvent réserver plus de mémoire qu'elles n'en utilisent réellement.
  • Chargement à la demande/chargement paresseux. La mémoire virtuelle charge uniquement les parties nécessaires d'un programme dans la mémoire physique, réduisant ainsi les temps de démarrage et la quantité de mémoire physique utilisée. Ceci est particulièrement utile pour les applications comportant de grandes quantités de code ou de données qui ne sont pas simultanément nécessaires.
  • Création de processus facile. L'utilisation de la mémoire virtuelle permet au système d'exploitation d'allouer plus facilement de la mémoire aux processus nouvellement créés. Cela peut également simplifier la gestion de la mémoire allouée dynamiquement au sein de ces processus, améliorant ainsi la réactivité du système et évolutivité.
  • Fichiers mappés en mémoire. La mémoire virtuelle permet de mapper des fichiers directement dans l'espace d'adressage d'un processus, simplifiant ainsi l'accès aux fichiers et améliorant les performances des opérations d'E/S sur les fichiers.
  • Mémoire virtuelle partagée. Dans les environnements où plusieurs processus doivent accéder aux mêmes données, la mémoire virtuelle facilite le partage de ces données en les mappant dans l'espace d'adressage de chaque processus. Cette fonctionnalité est utile dans les systèmes multi-utilisateurs ou multi-processus où les processus doivent communiquer ou partager des informations.

Inconvénients

Comme toute technologie, la mémoire virtuelle présente un certain nombre d’inconvénients, notamment :

  • Surcharge de performances. La mémoire virtuelle introduit une couche de traduction d'adresses entre la vue de la mémoire de l'application et la mémoire physique réelle, ce qui peut entraîner une surcharge de performances. Le processus d'échange de données entre la RAM et le stockage sur disque (pagination) peut ralentir le système, surtout si le disque est fréquemment consulté en raison d'une RAM limitée.
  • Battement de disque. Cela se produit lorsque le système manque de mémoire physique et passe beaucoup de temps à échanger des pages de mémoire entre le disque et la RAM. Cela peut gravement dégrader les performances du système, car le temps nécessaire pour lire et écrire sur le disque est beaucoup plus lent que pour accéder à la RAM.
  • Besoin de stockage accru. La mémoire virtuelle nécessite qu'une partie du disque soit allouée en tant qu'espace d'échange (sous Linux/Unix) ou fichier d'échange (sous Windows). Cette allocation réduit le stockage disponible pour d’autres usages et peut être importante, notamment sur les systèmes disposant de beaucoup de RAM.
  • Latence dans l'accès à la mémoire. Les temps d'accès aux données stockées dans la mémoire virtuelle (c'est-à-dire sur le disque) sont nettement plus élevés que pour les données dans la RAM physique. Cela peut entraîner des problèmes de latence pour les applications nécessitant un accès mémoire à haut débit, ce qui a un impact sur les performances des tâches urgentes.
  • Gestion de mémoire complexe. La mémoire virtuelle nécessite la maintenance de la table des pages, la gestion des défauts de page et la décision des pages à permuter. Tout cela ajoute de la complexité aux tâches de gestion de la mémoire du système d'exploitation et consomme des ressources système.
  • Fragmentation. Au fil du temps, le fichier d'échange ou l'espace d'échange peut devenir fragmenté, comme n'importe quel autre fichier. système de fichiers, ce qui peut dégrader les performances car le système doit rechercher différentes parties du disque pour lire ou écrire une seule page de mémoire.
  • Problèmes de sécurité. Une mémoire virtuelle mal configurée entraîne potentiellement des vulnérabilités de sécurité, telles que la fuite d'informations sensibles entre applications ou sur le disque. Il est crucial de garantir que la mémoire échangée est correctement gérée et nettoyée.

Algorithmes utilisés pour gérer la mémoire virtuelle

Plusieurs algorithmes sont utilisés pour gérer la mémoire virtuelle, chacun avec sa stratégie unique pour optimiser l'utilisation des ressources de mémoire physique. Parmi ceux-ci, le premier entré, le premier sorti (FIFO) et le moins récemment utilisé (LRU) se distinguent par leurs approches distinctes du remplacement de page, qui constitue un aspect essentiel de la gestion de la mémoire virtuelle.

FIFO

Premier entré, premier sorti (FIFO) est un algorithme fondamental de remplacement de page dans lequel les pages sont échangées dans et hors de la mémoire physique en fonction de leur heure d'arrivée. En FIFO, la page la plus ancienne, c'est-à-dire celle qui a été chargée en mémoire en premier, est la première à être expulsée lorsque de l'espace est requis pour de nouvelles pages. Cette méthode fonctionne un peu comme une file d’attente, hiérarchisant les pages dans l’ordre dans lequel elles ont été introduites.

Bien que la simplicité et la surcharge minimale du FIFO le rendent attrayant, il ne tient pas compte de la fréquence ou de la récence des accès aux pages, ce qui peut conduire à une utilisation sous-optimale de la mémoire. Cela est évident dans des situations comme l'anomalie de Belady, où l'ajout de cadres de page supplémentaires pourrait paradoxalement augmenter le nombre de défauts de page, mettant en évidence une inefficacité fondamentale de la stratégie FIFO.

Lru

La moins récemment utilisée (LRU) hiérarchise les pages en fonction de leur historique d'accès, en ciblant spécifiquement la page qui a été utilisée la moins récemment pour son remplacement. Cette méthode repose sur l’hypothèse selon laquelle les pages consultées récemment seront probablement à nouveau nécessaires prochainement.

La mise en œuvre de LRU implique de suivre l'heure du dernier accès à chaque page ou de conserver un enregistrement des pages dans l'ordre de leur accès. Cette complexité supplémentaire peut être justifiée par l'approximation plus efficace de LRU du remplacement optimal des pages, qui vise à minimiser les défauts de page et à améliorer les performances en gardant en mémoire les pages fréquemment utilisées. Malgré sa surcharge plus élevée que le FIFO, LRU est largement apprécié pour sa gestion plus dynamique et efficace de la mémoire virtuelle.

OPT

Bien qu'il ne soit pas réalisable en pratique, le remplacement optimal des pages (OPT) sert de référence théorique pour évaluer l'efficacité des algorithmes de remplacement de pages. OPT fonctionne sur le principe de l'expulsion de la page qui ne sera plus nécessaire pendant le plus longtemps. Parce qu'il nécessite une anticipation des demandes futures, l'OPT est utilisé dans des contextes académiques et théoriques pour évaluer la limite supérieure des performances de l'algorithme de remplacement de page. Son utilité réside dans la comparaison, en aidant les développeurs à comprendre les gains d’efficacité potentiels des algorithmes du monde réel par rapport à cette norme idéalisée.


Anastasie
Spasojevic
Anastazija est une rédactrice de contenu expérimentée avec des connaissances et une passion pour cloud l'informatique, les technologies de l'information et la sécurité en ligne. À phoenixNAP, elle se concentre sur la réponse à des questions brûlantes concernant la garantie de la robustesse et de la sécurité des données pour tous les acteurs du paysage numérique.