La mémoire virtuelle est un concept précieux dans l'architecture informatique qui vous permet d'exécuter des programmes volumineux et sophistiqués sur un ordinateur même s'il dispose d'une quantité de RAM relativement faible. Un ordinateur avec mémoire virtuelle jongle astucieusement avec les demandes conflictuelles de plusieurs programmes dans une quantité fixe de mémoire physique. Un PC qui manque de mémoire peut exécuter les mêmes programmes qu'un ordinateur doté d'une RAM abondante, bien que plus lentement.
Adresses physiques vs virtuelles
Un ordinateur accède au contenu de sa RAM via un système d'adresses, qui sont essentiellement des nombres qui localisent chaque octet. Étant donné que la quantité de mémoire varie d'un PC à l'autre, il devient compliqué de déterminer quel logiciel fonctionnera sur un ordinateur donné. La mémoire virtuelle résout ce problème en traitant chaque ordinateur comme s'il avait une grande quantité de RAM et chaque programme comme s'il utilisait exclusivement le PC. Le système d'exploitation, tel que Microsoft Windows ou OS X d'Apple, crée un ensemble d'adresses virtuelles pour chaque programme. Le système d'exploitation traduit les adresses virtuelles en adresses physiques, adaptant dynamiquement les programmes à la RAM au fur et à mesure qu'elle devient disponible.
Pagination
La mémoire virtuelle divise les programmes en blocs de taille fixe appelés pages. Si un ordinateur dispose d'une mémoire physique abondante, le système d'exploitation charge toutes les pages d'un programme dans la RAM. Sinon, le système d'exploitation s'adapte autant qu'il le peut et exécute les instructions de ces pages. Lorsque l'ordinateur en a fini avec ces pages, il charge le reste du programme dans la RAM, écrasant éventuellement les pages précédentes. Étant donné que le système d'exploitation gère automatiquement ces détails, cela permet au développeur de se concentrer sur les fonctionnalités du programme et de ne pas se soucier des problèmes de mémoire.
Multiprogrammation
La mémoire virtuelle avec pagination permet à un ordinateur d'exécuter plusieurs programmes en même temps, presque indépendamment de la RAM disponible. Cet avantage, appelé multiprogrammation, est une caractéristique clé des systèmes d'exploitation PC modernes, car ils prennent en charge de nombreux programmes utilitaires tels que les pilotes d'imprimante, les gestionnaires de réseau et les antivirus en même temps que vos applications - navigateurs Web, traitements de texte, courrier électronique et médias. joueurs.
Fichier d'échange
Avec la mémoire virtuelle, l'ordinateur écrit des pages de programme qui n'ont pas été récemment utilisées dans une zone du disque dur appelée fichier d'échange. Le fichier enregistre les données contenues dans les pages; si le programme en a de nouveau besoin, le système d'exploitation le recharge lorsque la RAM devient disponible. Lorsque de nombreux programmes sont en concurrence pour la RAM, le fait d'échanger des pages vers le fichier peut ralentir la vitesse de traitement d'un ordinateur, car il passe plus de temps à faire des tâches de gestion de la mémoire et moins de temps à effectuer un travail utile. Idéalement, un ordinateur aura suffisamment de RAM pour gérer les demandes de nombreux programmes, minimisant ainsi le temps que l'ordinateur passe à gérer ses pages.
Protection mémoire
Un ordinateur sans mémoire virtuelle peut toujours exécuter plusieurs programmes en même temps, bien qu'un programme puisse modifier, accidentellement ou délibérément, les données d'un autre si ses adresses pointent vers le mauvais programme. La mémoire virtuelle empêche cette situation car un programme ne «voit» jamais ses adresses physiques. Le gestionnaire de mémoire virtuelle protège les données d'un programme contre les modifications d'un autre.