Next: Espace virtuel
Up: Support des systèmes
Previous: Introduction
Sur les microprocesseurs à usage général, le système d'exploitation doit permettre à plusieurs processus d'être résidants en mémoire simultanément. Afin de permettre à ces processus de cohabiter et de partager des données, un mécanisme de mémoire virtuelle est mis en oeuvre.
La mémoire virtuelle peut être implémentée de diverses manières. On distingue en particulier : l'adressage linéaire et l'adressage segmenté :
- Dans le cas de l'adressage linéaire (utilisé par le MIPS R10000 et l'UltraSPARC), une adresse de taille fixe calculée par le microprocesseur est utilisée comme adresse virtuelle. Elle est divisée en un numéro de page et un déplacement dans cette page. Ce numéro de page et l'identificateur du processus sont utilisés par le mécanisme de pagination pour la traduction en adresse physique.
- Dans le cas de l'adressage segmentée du PentiumPro, l'adresse virtuelle s'obtient par la concaténation d'un numéro de segment et le déplacement dans le segment. Le déplacement dans le segment est l'adresse calculée par le programme. Cette adresse virtuelle est ensuite transformée dans une première étape en adresse logique (par addition de l'adresse de base du segment et du déplacement) , puis cette adresse logique est traduite en adresse physique.
L'avantage de la segmentation est de faciliter la protection mémoire en allouant des segments séparés à différents objets, la protection étant réalisée au niveau du segment. Cependant le mécanisme de segmentation est bien plus lourd à mettre en oeuvre que l'adressage linéaire simple.