Vous ouvrez un navigateur avec vingt onglets, un traitement de texte et un lecteur vidéo sur une machine dotée de 8 Go de RAM. Additionnées, ces applications réclament davantage. Pourtant rien ne plante : le système continue de fonctionner, simplement plus lentement. Ce tour de passe-passe porte un nom — la mémoire virtuelle — et c’est l’un des mécanismes les plus élégants des systèmes d’exploitation modernes.
Le problème à résoudre
La mémoire vive est rapide mais limitée et coûteuse. Le stockage — SSD ou disque dur — est lent mais abondant et bon marché. Si chaque programme devait tenir intégralement en RAM, deux contraintes majeures apparaîtraient : le nombre d’applications ouvertes serait strictement plafonné, et chaque programme devrait connaître à l’avance l’emplacement physique exact qu’il occupe, ce qui rendrait toute cohabitation ingérable.
La mémoire virtuelle résout les deux problèmes d’un coup grâce à une idée simple : mentir aux programmes, de manière organisée.
Chaque programme croit être seul au monde
Le système d’exploitation présente à chaque processus un espace d’adressage privé, continu, qui commence à zéro. Du point de vue du programme, il dispose de toute la mémoire pour lui seul, bien rangée.
Cette vue est une fiction. Derrière, une unité matérielle dédiée du processeur, appelée MMU (Memory Management Unit), traduit en permanence chaque adresse virtuelle en adresse physique réelle. Deux adresses virtuelles identiques dans deux programmes différents pointent vers des zones physiques totalement distinctes.
Cette indirection apporte trois bénéfices majeurs :
- Isolation. Un programme ne peut pas lire ou corrompre la mémoire d’un autre, puisqu’il n’a aucun moyen d’y faire référence.
- Souplesse. Les données d’un même processus peuvent être éparpillées physiquement tout en paraissant contiguës.
- Extension. Une partie du contenu peut résider ailleurs qu’en RAM sans que le programme s’en aperçoive.
La pagination
Pour organiser tout cela, la mémoire est découpée en blocs de taille fixe appelés pages — typiquement 4 kilo-octets. Les emplacements physiques correspondants s’appellent des cadres de pages.
Le système maintient pour chaque processus une table des pages qui associe chaque page virtuelle à son emplacement réel. Chaque entrée indique aussi si la page est actuellement présente en RAM ou non.
Quand un programme accède à une page absente de la RAM, le processeur déclenche un défaut de page. Le système d’exploitation prend alors la main, va chercher la page sur le stockage, la charge dans un cadre libre, met à jour la table, puis laisse le programme reprendre exactement où il en était. Le programme n’a rien remarqué — seulement que cette instruction a pris beaucoup plus de temps.
Le fichier d’échange
Quand la RAM se remplit, il faut libérer de la place. Le système choisit des pages jugées peu utiles à court terme et les écrit sur le stockage, dans une zone réservée : le fichier d’échange (swap file ou pagefile selon les systèmes).
| RAM | Fichier d’échange | |
|---|---|---|
| Support | Mémoire vive | SSD ou disque dur |
| Vitesse d’accès | Très rapide | Nettement plus lente |
| Capacité | Limitée | Large |
| Contenu conservé à l’arrêt | Non | Non pertinent (zone réutilisée) |
Le choix des pages à évincer suit des algorithmes qui privilégient généralement celles qui n’ont pas été utilisées récemment, en partant du principe qu’un accès passé prédit assez bien un accès futur.
Pourquoi la machine devient soudain très lente
Tant que les échanges restent occasionnels, l’utilisateur ne perçoit presque rien. Le problème survient lorsque la mémoire manque à ce point que le système passe son temps à déplacer des pages : il en sort une pour en charger une autre, dont il a besoin quelques instants plus tard, et ainsi de suite.
Ce phénomène s’appelle l’emballement de pagination (thrashing en anglais). Le processeur reste largement inoccupé, à attendre le stockage. C’est ce qui explique la sensation caractéristique d’un ordinateur qui « rame » : la souris bouge, mais chaque clic met plusieurs secondes à produire un effet.
À noter : un SSD réduit considérablement la douleur par rapport à un disque mécanique, mais il ne supprime pas le problème. L’écart de vitesse avec la RAM reste énorme.
Idées reçues fréquentes
- « Il faut désactiver le fichier d’échange pour aller plus vite. » Mauvaise idée dans la plupart des cas : sans lui, le système n’a plus de marge de manœuvre et peut fermer brutalement des applications quand la RAM sature.
- « Un grand fichier d’échange remplace la RAM. » Non. Il évite les plantages, mais ne restitue jamais la vitesse de la mémoire vive.
- « De la RAM libre est de la RAM gaspillée. » Les systèmes modernes utilisent volontairement la mémoire disponible comme cache disque. Un indicateur affichant beaucoup de RAM « utilisée » n’est pas un signe d’alerte en soi.
Que faire en pratique
- Identifier les consommateurs. Le gestionnaire des tâches ou le moniteur système montre quels processus occupent le plus de mémoire.
- Fermer ce qui ne sert pas. Les onglets de navigateur sont souvent les principaux responsables.
- Limiter les programmes au démarrage. Beaucoup s’installent en arrière-plan sans nécessité.
- Ajouter de la RAM si le matériel le permet. C’est l’amélioration la plus rentable sur une machine qui pagine constamment.
- Laisser le système gérer la taille du fichier d’échange sauf raison technique précise.
Conclusion
La mémoire virtuelle est une couche d’abstraction qui rend possible le multitâche tel que nous le connaissons : chaque programme croit disposer d’un espace propre et illimité, pendant que le système jongle discrètement entre RAM et stockage. Comprendre ce mécanisme permet d’interpréter correctement les ralentissements et de choisir les bonnes actions plutôt que de suivre des recettes trouvées au hasard.
Pour approfondir le fonctionnement des systèmes d’exploitation et du matériel, Cursa propose des cours gratuits en systèmes opérationnels et en informatique de base, accessibles à votre rythme.









