24. allocation mémoire paginée Flashcards
fonctionnement Allocation mémoire paginée
On divise la mémoire physique en petits
morceaux nommés trames (frames)
- On divise la mémoire virtuelle en petits
morceaux nommés pages - Une trame a toujours la même taille qu’une
page. Dans l’exemple, la taille d’une page/
trame est de 256Ko - Lorsqu’on alloue de la mémoire à un
processus, on attribue une page à une trame
Comment fait-on pour savoir
* l’endroit où une page est stockée?
* la correspondance entre une page et une trame?
La table des pages est une structure de données dans le
MMU qui conserve la correspondance entre chaque
page mémoire virtuelle—trame mémoire physique
En pratique, on ne stocke pas
le numéro de —- en mémoire.
Le numéro de —– dans la table
correspond au numéro de —-.
En pratique, on ne stocke pas
le numéro de page en mémoire.
Le numéro de ligne dans la table
correspond au numéro de page.
Une table des pages indique:
le numéro de trame correspondant à chaque page
la table des pages inversée est
le numéro de page correspondant à chaque trame
La taille d’une table des pages inversée est
proportionnelle à la
taille de la mémoire physique
La table des pages inversées est une structure de données
dans le MMU qui conserve la correspondance entre chaque
trame de la mémoire physique——page de la mémoire virtuelle
table des pages:nb ligne
il y a une ligne par page
L’information stockée dans chaque ligne
le numéro de trame
correspondant à chaque page
combien de bits sont nécessaires pour représenter le numéro de trame?
log2(nb trames)
Calcul de la taille
taille = (nb pages) × (nb bits nécessaires pour représenter une trame)= = (nb pages) × log2(nb trames)
nb pages
taille mémoire virtuelle/
taille d’une page
nb trames
taille mémoire physique/
taille d’une trame
Dans le cas de l’allocation mémoire paginée, le MMU
est plus complexe que pour l’allocation contigüe
* On ne peut plus simplement additionner la première
adresse!
* Pour traduire l’adresse, il faut effectuer trois étapes
- Déterminer la page de l’adresse virtuelle;
- Trouver la trame (dans la mémoire physique)
correspondant à cette page; - Remplacer le numéro de page par le numéro de
trame
- Déterminer la page de l’adresse virtuelle
* Une adresse virtuelle est divisée en deux:
le numéro de page (MSB)
* la position dans la page (LSB)
Le nombre de bits utilisé pour ces deux parties (adresse virtuelle)dépend de la taille
Le nombre de bits utilisé pour ces deux parties dépend de la taille
d’une page
- Trouver la trame correspondant à cette page
* Comment fait-on pour savoir
* l’endroit où une page est stockée?
* la correspondance entre une page et une trame?
On utilise la table des pages, une structure de données
dans le MMU qui conserve la correspondance entre
chaque:
* page de la mémoire virtuelle
* trame de la mémoire physique
- Remplacer le # de page par le # de trame
* Supposons que la table des pages révèle que la
page 0x3D correspond à la trame 0x2F3 … il faut
Il suffit de remplacer le numéro de page par le
numéro de trame pour obtenir l’adresse physique
- Un ordinateur possède plusieurs
programmes, situés sur le disque
dur - Lors du démarrage du
programme
Les ressources nécessaires
(mémoire, etc.) sont créées par le
système d’exploitation lorsque le
programme est démarré
Création d’un processus—allocation pagineé
le processus est divisé en pages,
* qui sont attribuées à différentes trames en RAM
Est-ce qu’un processus doit être
entièrement en mémoire
Seules les pages nécessaires à
l’exécution doivent être en mémoire
Laquelle est plus grosse:
la mémoire virtuelle (pour tous les processus)
ou la mémoire physique?
Ou est-ce que les deux doivent avoir la même taille?
La mémoire virtuelle peut être beaucoup plus grosse
que la mémoire physique
2 conditions pour qu’un programme puisse
s’exécuter
l’instruction (ou la donnée) nécessaire doit être en
mémoire RAM
* la table de pages pour ce programme doit contenir une
entrée qui traduit l’adresse (virtuelle) du programme
vers l’adresse (physique) en RAM
Une —- survient lorsque le processus
requiert une page qui n’est pas en mémoire
faute de page
comment régler la faute de page
S’il y a de la place dans la mémoire physique:
- Créer la nouvelle page;
- Placer la page en mémoire physique dans une trame
vide; - Mettre à jour la table des pages et la table des pages
inversée.
comment régler la faute de page
S’il n’y a plus de place dans la mémoire physique:
Déterminer la page la plus anciennement utilisée (cela fait
longtemps qu’on ne l’a pas utilisée);
2. Évincer la page de la mémoire physique.
* Cependant, cette page pourrait être utilisée à nouveau par le processus parce qu’elle peut contenir des instructions ou des données importantes.
* Il nous faut donc sauvegarder la page sur le disque dur
* La page est sauvegardée dans un fichier spécial, nommé le Swap File.
- Trouver une trame libre en RAM;
- Créer la page (ou la chercher sur le disque dur si elle a déjà été créée);
- Placer la page en mémoire physique dans la trame sélectionnée
à l’étape 2; - Mettre à jour la table des pages et la table des pages inversée.