Le concept de la mémoire virtuelle

Personnellement je suis un enseignant en architecture des ordinateurs, et j’essaye de parler le moins possible dans mes cours de la mémoire virtuelle. Pourquoi ? parce que ça va rajouter un degré de confusion pour la compréhension du fonctionnement de la mémoire pour les étudiants. Malgré ça dans le cas pratique, la mémoire virtuelle est quasiment implémentée dans toutes les machines modernes. Elle se peut qu’elle soit quad même absente dans les systèmes simplistes comme les microcontrôleurs et quelques systèmes embarqués. En tout cas il est très simple de reconnaître si un possesseur utilise la mémoire virtuelle ou non, il suffit de chercher s’il dispose d’un MMU, car c’est le composant en charge de cette technologie.

La mémoire virtuelle

La vidéo en haut de la chaîne YouTube Computerphile expose très bien le concept de la ma mémoire virtuelle, malgré cela j’aimerais juste rajouter quelques observations personnelles. Comme par exemple le mécanisme de la mémoire virtuelle semble a priori apporter de la complexité superflue à la machine, mais en réalité il est très pratique. Car premièrement d’un point de vue technique, il est très simple à implémenter. Et deuxièmement, ça permet d’incorporer beaucoup d’autres mécanismes. Comme par exemple la protection de la mémoire, lorsqu’un programme est limité à son espace et ne peut pas accéder aux données d’un autre programme. Ou encore l’utilisation du swapping ou pagination avec le disque dur, utilisés principalement lorsque la RAM n’a pas d’espace suffisant pour contenir toutes les données d’un programme, ainsi le disque dur prend le rôle d’un approvisionneur de mémoire.

Un dernier point technique concernant l’utilisation de la mémoire virtuelle, c’est que cette dernière est réalisée par un composant interne au processeur appelez le MMU (Memory Management Unit). Dans l’utilisation réelle, le système d’exploitation sollicite le MMU pour gérer la mémoire virtuelle. Il important aussi de savoir que le MMU utilise une partie de la RAM pour sauvegarder ses tables de transition, en ayant en plus une minuscule mémoire cashe dans le processeur s’appelant TLB (Translation Lookaside Buffer), lui permettant d’accélérer les opérations de transition. Bien sûr j’aimerais rappeler que cette mémoire cashe est totalement différente du cache principal du processeur, lui aussi géré par le MMU.