La mémoire virtuelle est une zone de l’espace de stockage de la mémoire secondaire d’un système informatique (comme un disque dur ou un disque SSD) qui agit comme si elle faisait partie de la mémoire ram ou de la mémoire primaire du système.
Idéalement, les données nécessaires à l’exécution des applications sont stockées dans la RAM, où elles sont rapidement accessibles par le processeur. Mais lorsque de grandes applications sont en cours d’exécution, ou lorsque de nombreuses applications sont en cours d’exécution à la fois, la RAM du système peut devenir pleine.
Pour contourner ce problème, certaines données stockées dans la RAM qui ne sont pas utilisées activement peuvent être temporairement déplacées vers la mémoire virtuelle (qui se trouve physiquement sur un disque dur ou un autre périphérique de stockage). Cela libère de l’espace dans la RAM, qui peut ensuite être utilisée pour accueillir les données auxquelles le système doit accéder de manière imminente.
En échangeant des données entre la RAM et la mémoire virtuelle lorsqu’elles ne sont pas nécessaires et en revenant de la mémoire virtuelle à la RAM lorsque cela est nécessaire, un système peut continuer à fonctionner sans problème avec beaucoup moins de RAM physique qu’il n’en aurait besoin autrement.
La mémoire virtuelle permet à un système d’exécuter des applications plus grandes ou d’exécuter plus d’applications en même temps sans manquer de RAM. Plus précisément, le système peut fonctionner comme si ses ressources RAM totales étaient égales à la quantité de RAM physique, plus la quantité de RAM virtuelle.
Pourquoi la mémoire virtuelle est-elle nécessaire ?
La mémoire virtuelle a été développée lorsque la RAM physique était très chère et que la RAM est toujours plus chère par gigaoctet que les supports de stockage tels que les disques durs et les disques SSD. Pour cette raison, il est beaucoup moins coûteux d’utiliser une combinaison de RAM physique et de mémoire virtuelle que d’équiper un système informatique de plus de RAM.
Étant donné que l’utilisation de la mémoire virtuelle (ou l’augmentation de la mémoire virtuelle) n’a aucun coût financier supplémentaire (car elle utilise l’espace de stockage existant), elle offre à un ordinateur un moyen d’utiliser plus de mémoire que ce qui est physiquement disponible sur le système.
Un autre facteur clé pour l’utilisation de la mémoire virtuelle est que tous les systèmes informatiques ont une limite (dictée par le matériel et les logiciels) sur la quantité de RAM physique pouvant être installée. L’utilisation de la mémoire virtuelle permet au système de continuer à fonctionner au-delà de ces limites de RAM physique.
Mémoire virtuelle vs Mémoire physique
La RAM étant plus chère que la mémoire virtuelle, il semblerait – toutes choses étant égales par ailleurs – que les ordinateurs devraient être équipés du moins de RAM et du plus de mémoire virtuelle possible.
Mais en fait les caractéristiques de la mémoire virtuelle sont différentes de celles de la mémoire physique. La principale différence entre la mémoire virtuelle et la mémoire physique est que la RAM est beaucoup plus rapide que la mémoire virtuelle.
Ainsi, un système avec 2 Go de RAM physique et 2 Go de mémoire virtuelle n’offrira pas les mêmes performances qu’un système similaire avec 4 Go de RAM physique. Pour comprendre pourquoi, il est nécessaire de comprendre comment fonctionne la mémoire virtuelle.
Comment Fonctionne La Mémoire Virtuelle?
Lorsqu’une application (y compris le système d’exploitation) est en cours d’exécution, elle stocke l’emplacement des threads de programme et d’autres données à une adresse virtuelle, tandis que les données sont en fait stockées à une adresse physique dans la RAM. Si plus tard cet espace RAM est nécessaire de manière plus urgente par un autre processus, les données peuvent être échangées hors de la RAM et dans la mémoire virtuelle.
La responsabilité de garder une trace de toutes ces données lorsqu’elles sont échangées entre la mémoire physique et la mémoire virtuelle incombe au gestionnaire de mémoire de l’ordinateur. Le gestionnaire de mémoire gère une table qui mappe les adresses virtuelles utilisées par le système d’exploitation et les applications aux adresses physiques dans lesquelles les données sont réellement stockées. Lorsque des données sont échangées entre la RAM et la mémoire virtuelle, la table est mise à jour de sorte qu’une adresse virtuelle donnée pointe toujours vers l’emplacement physique correct.
Un ordinateur ne peut exécuter que des threads et manipuler des données stockées dans la RAM plutôt que dans la mémoire virtuelle. Et il faut un temps non négligeable pour échanger les données nécessaires en RAM. Par conséquent, il s’ensuit que l’utilisation de la mémoire virtuelle implique un succès de performance.
Autrement dit, un système avec 4 Go de RAM offrira généralement des performances supérieures à celles d’un système avec 2 Go de RAM et 2 Go de mémoire virtuelle en raison de l’atteinte des performances causée par l’échange, et pour cette raison, on dit que la mémoire virtuelle est plus lente que la RAM.
Un problème potentiel avec la mémoire virtuelle est que si la quantité de RAM présente est trop faible par rapport à la quantité de mémoire virtuelle, un système peut finir par dépenser une grande partie de ses ressources CPU pour échanger des données d’avant en arrière. Pendant ce temps, l’exécution d’un travail utile s’arrête presque – un processus connu sous le nom de battage.
Pour éviter les bousculades, il est généralement nécessaire de réduire le nombre d’applications exécutées simultanément, ou simplement d’augmenter la quantité de RAM dans le système.
Les systèmes d’exploitation, tels que la plupart des versions de Windows, recommandent généralement aux utilisateurs de ne pas augmenter la mémoire virtuelle au-delà de 1,5 fois la quantité de RAM physique présente. Ainsi, un système avec 4 Go de RAM devrait avoir une mémoire virtuelle ne dépassant pas 6 Go.
Pour minimiser les performances causées par l’échange entre la mémoire physique et la mémoire virtuelle, il est préférable d’utiliser le périphérique de stockage le plus rapide connecté au système pour héberger la mémoire virtuelle et localiser la zone de stockage de la mémoire virtuelle sur sa propre partition.
La mémoire virtuelle peut agir de concert avec la mémoire principale d’un ordinateur pour permettre des opérations plus rapides et plus fluides.
Comment augmenter la mémoire virtuelle dans un système
La plupart des systèmes d’exploitation permettent aux utilisateurs d’augmenter la mémoire virtuelle à partir d’une page de configuration.
- Sous Windows, les utilisateurs peuvent également autoriser le système à gérer dynamiquement la quantité de mémoire virtuelle fournie.
- De même, sous Mac OS, les utilisateurs peuvent utiliser le panneau de préférences pour attribuer de la mémoire virtuelle.
Types de mémoire virtuelle: Pagination et segmentation
La mémoire virtuelle peut être gérée de différentes manières par le système d’exploitation d’un système, et les deux approches les plus courantes sont la pagination et la segmentation.
Pagination de mémoire virtuelle
Dans un système qui utilise la pagination, la RAM est divisée en un certain nombre de blocs – généralement de taille 4k – appelés pages. Les processus reçoivent alors juste assez de pages pour répondre à leurs besoins en mémoire. Cela signifie qu’il y aura toujours une petite quantité de mémoire gaspillée, sauf dans le cas inhabituel où un processus nécessite exactement un nombre entier de pages.
Au cours des opérations normales, les pages (c’est-à-dire les blocs de mémoire de taille 4K) sont échangées entre la RAM et un fichier de page, qui représente la mémoire virtuelle.
Segmentation de la mémoire virtuelle
La segmentation est une approche alternative à la gestion de la mémoire, où au lieu de pages de taille fixe, les processus se voient attribuer des segments de longueur différente pour répondre exactement à leurs exigences. Cela signifie que contrairement à un système paginé, aucune mémoire n’est gaspillée dans un segment.La segmentation
permet également de diviser les applications en espaces d’adressage logiquement indépendants, ce qui peut les rendre plus faciles à partager et plus sécurisées.
Mais un problème avec la segmentation est que parce que chaque segment est d’une longueur différente, cela peut entraîner une fragmentation de la mémoire. »Cela signifie qu’à mesure que les segments sont alloués et désalloués, de petits morceaux de mémoire peuvent être dispersés, trop petits pour être utiles.
Au fur et à mesure que ces petits morceaux s’accumulent, de moins en moins de segments de taille utile peuvent être alloués. Et si le système d’exploitation commence à utiliser ces petits segments, il y en a un grand nombre à suivre, et chaque processus devra utiliser de nombreux segments différents, ce qui est inefficace et peut réduire les performances.
Avantages et inconvénients de la mémoire virtuelle
Même si la RAM est maintenant relativement peu coûteuse par rapport à son coût lors du développement de la mémoire virtuelle, elle reste extrêmement utile et elle est encore utilisée dans de nombreux systèmes informatiques, peut-être la plupart. Le problème clé de la mémoire virtuelle concerne les performances.
Avantages de la mémoire virtuelle
- Permet d’exécuter plus d’applications en même temps.
- Permet à des applications plus grandes de s’exécuter dans des systèmes qui n’ont pas suffisamment de RAM physique seule pour les exécuter.
- Fournit un moyen d’augmenter la mémoire, ce qui est moins coûteux que d’acheter plus de RAM.
- Fournit un moyen d’augmenter la mémoire dans un système qui a la quantité maximale de RAM que son matériel et son système d’exploitation peuvent prendre en charge.
Inconvénients de la mémoire virtuelle
- N’offre pas les mêmes performances que la RAM.
- Peut affecter négativement les performances globales d’un système.
- Prend de l’espace de stockage qui pourrait autrement être utilisé pour le stockage de données à long terme.