Lorsque votre programme lit l'adresse 0x400000, il ne s'agit pas d'un emplacement réel sur la barrette de mémoire vive. Il s'agit d'une adresse virtuelle, et le gestionnaire de mémoire du processeur la convertit en adresse physique au moment même de l'exécution.
Les avantages de la couche intermédiaire
- Isolation : le processus A ne peut pas accéder à la mémoire du processus B, car la table de mappage de A ne contient tout simplement pas de chemin menant à celle-ci
- Fausse continuité : le programme perçoit une zone de mémoire contiguë, alors qu’en réalité les pages sont dispersées dans toute la mémoire vive
- Partage intelligent : lorsque dix processus utilisent la même bibliothèque, le code de cette bibliothèque n’est présent qu’une seule fois en mémoire vive
Page, erreur de page et permutation
La mémoire est divisée en pages, généralement de 4 Ko. Lorsqu’un programme accède à une page qui n’a pas encore été chargée, le processeur génère une erreur de page et confie la tâche au noyau. Le noyau va chercher les données — éventuellement sur le disque dur —, les charge, puis permet au programme de continuer à s’exécuter comme si de rien n’était.
C'est aussi la raison pour laquelle un ordinateur devient extrêmement lent lorsqu'il n'a plus de RAM : à chaque accès à la mémoire, il peut être nécessaire d'attendre le disque dur, qui est des milliers de fois plus lent que la RAM.
Que signifient les chiffres figurant dans le classement ?
VIRT— l'espace virtuel total alloué, qui est généralement très important mais peu significatifRES— la partie réellement présente dans la mémoire vive (RAM) ; c’est ce chiffre qui est pertinentSHR— la partie partagée avec d’autres processus
La somme RES de tous les processus donne généralement un chiffre supérieur à la mémoire vive réelle, car la mémoire partagée est comptabilisée plusieurs fois.
Thảo luận