Mémoire virtuelle: introduction
- Principe: Permettre
l'exécution de programmes plus gros que la mémoire centrale
en utilisant de la mémoire secondaire (espace disque) pour y stocker
une partie du programme tout en rendant ce mécanisme totalement transparent
pour l'utilisateur.
- Avantages:
- Améliore la multiprogrammation car plus la mémoire
virtuelle est grande, plus le nombre de processus chargés peut être
important.
- Un programmeur n'est pas limité par la mémoire
réelle.
- Conséquences:
- Il faut un mécanisme de va-et-vient performant entre
la mémoire centrale et la mémoire secondaire.
- Il faut un mécanisme de transformation d'une adresse
virtuelle (adresse logique du programme) en adresse réelle (adresse
physique en mémoire).
- Risque de trashing: S'il y a trop de processus et pas assez
d'espace mémoire pour chacun d'eux, le système risque de passer
sont temps à faire du chargement/déchargement de partie de
programme. La solution consiste à décharger des processus complets
en mémoire secondaire.
- Exemples:
- Segmentation + arbre de recouvrement: permet d'exécuter
un programme plus grand que la mémoire centrale. Cependant, le mécanisme
est à la charge du programmeur donc il n'y a pas transparence et
pas d'adresse virtuelle.
- Pagination + mémoire virtuelle: Une page peut être
présente en mémoire ou non. Un programme peut donc avoir uniquement
quelques pages chargées en mémoire. Le mécanisme est
totalement transparent pour l'utilisateur.