La façon la plus simple d'y penser est de revenir en arrière, en 1995.
Un PC haut de gamme aurait 8 Mo de RAM (oui, des mégaoctets). Et pourtant, sous Windows NT (qui est devenu Windows 2000, qui est devenu Windows XP), vos applications pensaient qu'elles avaient accès à 2 GB de mémoire - un chiffre si important qu'il en devient ahurissant.
Et votre application pourrait le faire :
- il peut allouer 2 Go de mémoire
- alors que le PC actuel n'a que 8 Mo de RAM
Comment cela pourrait-il fonctionner ? Comment mon programme peut-il utiliser activement 2 Go de mémoire, alors que le PC ne dispose que de 8 Mo de RAM ? Où vont toutes ces données ? Il est évident qu'il ne va pas dans les puces de mémoire vive.
La réponse est virtuel mémoire
Les applications allouent la mémoire en tranches de 4 KB appelées pages . Si toutes les pages de la mémoire vive sont pleines :
- Windows choisit une page de la mémoire vive qui est rarement utilisée.
- enregistrer une copie de cette page de 4 Ko dans un fichier fichier de page
- puis donnez cette nouvelle page disponible à votre application
Et si le programme qui utilisait cette page en a besoin ?
- Windows détectera alors que votre application tente d'accéder à une page qui a été "échangé" à l'extérieur de la fichier de page
- libérer une autre page de la mémoire vive
- remplir le contenu de la nouvelle page disponible avec les valeurs enregistrées sur le disque dur
Votre application peut alors accéder à la page comme si rien ne s'était passé.
Il en va de même aujourd'hui
- vous pouvez avoir "engagé" 31 Go de "mémoire"
- tout en ne disposant que de 16 Go de "RAM"