Cours sur la memoire virtuelle
La mémoire virtuelle
Définition Les problèmes de l’allocation mémoire Correspondance adresses virtuelles – adresses physiques Principes et mécanismes de base de la pagination La mémoire virtuelle linéaire Le défaut de page Le choix d’une victime – remplacement Le préchargement – La localité Pagination à deux niveaux Structure d’un programme Avantages / Inconvénients de la pagination La mémoirevirtuelle segmentée Les segments Problèmes Le partage de l’information en mémoire virtuelle linéaire Le partage de l’information en mémoire segmentée
Définition
Mémoire virtuelle = support de l’ensemble des informations potentiellement accessibles.
Ensemble des emplacements dont l’adresse peut être engendrée par le processeur.
Mémoire physique = Ensemble des emplacements RAM physiquementprésents dans l’ordinateur.
Pourquoi une mémoire virtuelle ?
Mémoire physique coûteuse. Mémoire secondaire (disques, mémoire étendue, …) peu coûteuse. Programmes gourmands en mémoire et qui ne « tiennent pas » toujours en RAM.
Utiliser la mémoire secondaire « comme » mémoire RAM.
Idée générale
Il s’agit de conserver en mémoire une « partie » des programmes en cours d’exécution. Si unprogramme A veut s’exécuter alors qu’il n’y a plus de place en mémoire, un « bout » d’un autre programme est « viré » en mémoire secondaire et remplacé par un « bout » de A. Donc, un programme est decoupé en bouts que l’on nomme pages, de taille fixe. La mémoire physique est elle aussi découpée en pages, de même taille, ainsi que la mémoire secondaire.
1 sur 9
Les problèmes de l’allocation mémoirecorrespondance entre adresses virtuelles et adresses physiques ; gestion de la mémoire physique ; Et si multi-processus : partage de l’information ; protection mutuelle.
Correspondance adresses virtuelles – adresses physiques
On utilise une fonction topographique qui associe à une adresse virtuelle, une adresse réelle. Voici l’architecture classique d’accès à la mémoire :
Voici la fonctiontopographique : Fonction topo(x : adresse_virtuelle) : adresse_réelle; début topo := f(x); fin
2 sur 9
Et voici l’architecture avec réimplantation dynamique :
La mémoire virtuelle, avec sa table des pages, est une implémentation possible de la fonction topographique.
La table des pages virtuelles
Présent Modifié Protection Num page physique … oui … … non … … rx … … 18 …Présent : page virtuelle présente en mémoire physique ? Modifié : page modifiée ? Protection : droits d’accès. Num page physique : page physique correspondante. La table des pages virtuelles est une implémentation particulière d’une fonction de pagination (il en existe d’autres). En général, c’est un bit dans le PSW (Program Status Word) qui indique si l’on utilise ou non la mémoire virtuelle.3 sur 9
Principes et mécanismes de base de la pagination
Soit un processeur avec un bus d’adresse sur 32 bits, il peut addresser 2^32 octets, soit 4 Go. L’ordinateur a une mémoire physique de 8 Mo. L = taille de la page ou de la case, par exemple 4096 octets, soit 2^12. N = nombre de pages de la mémoire virtuelle, par exemple 1 Méga de pages, soit 2^20. n = nombre de cases de la mémoirephysique, par exemple 2048 cases, soit 2^11.
La mémoire virtuelle linéaire
Pourquoi mémoire virtuelle linéaire ? L’adresse du 1er octet de la page n = l’adresse du dernier octet de la page (n-1) + 1. Avantage : organisation identique à celle d’une mémoire physique.
Adresse Virtuelle
Adresse Physique
Le calcul de l’adresse réelle à partir de l’adresse virtuelle se réalise ainsi : lenuméro de page virtuelle donne l’entrée de la TPV dans laquelle se trouve le numéro de page physique ; le déplacement est le même (les pages physiques et virtuelles ont la même taille) ; si la page virtuelle n’est pas présente en mémoire physique, alors il se produit un défaut de page.
4 sur 9
Pour accélérer le processus, on utilise des mémoires associatives qui recencent les dernières pages…