1 / 18

GEF 435 Principes des systèmes d’exploitation

GEF 435 Principes des systèmes d’exploitation. Mémoire virtuelle (Tanenbaum 4.3). Revue. Quelle sont les deux types de base pour la gestion de la mémoire que nous avons vue? Comment tracent-on les sections de mémoire qui sont en utilisation et les trous durant la permutation?. Synopsis.

muriel
Download Presentation

GEF 435 Principes des systèmes d’exploitation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GEF 435Principes des systèmes d’exploitation Mémoire virtuelle (Tanenbaum 4.3)

  2. Revue • Quelle sont les deux types de base pour la gestion de la mémoire que nous avons vue? • Comment tracent-on les sections de mémoire qui sont en utilisation et les trous durant la permutation?

  3. Synopsis • Arrière-plan de la mémoire virtuelle • Pagination • Tables de Pages

  4. Arrière-plan • La permutation de processus (entiers) nous a permit d’avoir plus d’un programme en mémoire en même temps, mais nous n’avons pas adressé le problème d’un programme trop large pour la mémoire (4GO par processus!) • La solution qui a fait surface s’appel la mémoire virtuelle. L’idée principale est de garder une partie du programme en mémoire et une partie sur le disque • Maintenant un programme de 16MO peut rouler sur un système qui a seulement 4MO de RAM! • Et en plus on peut avoir une quantité de processus qui roulent en même temps et que la mémoire RAM ne peut contenir

  5. Arrière-plan • On se rappel que, en général on compile tout les programmes avec des adresses logiques qui sont relatives à l’adresse de base: zéro. Les adresses physiques sont calculées durant l’exécution du programme • La conversion des adresses est fait par une pièce de matériel que l’on appel Unité de gestion de la mémoire (Memory Management Unit) (MMU) • Le MMU prend les adresses logiques du processus et les transforment en adresses physique dans le RAM

  6. Arrière-plan • Les adresses qui sont données au MMU sont connues comme des adresses virtuelles ou adresses logiques • Ces termes sont interchangeables • Le MMU produit une adresse physique • L’adresse physique est dans le RAM

  7. Pagination • Les processus croient qu’ils peuvent accéder la mémoire entière qui leur est donnée, basé sur le nombre de lignes d’adresses sur le matériel • Pour un système à 32bits, cela est 232, ou 4GO • Ceci est connue comme un espace d’adresses virtuel • Pour être capable de donner des “sections” de mémoire qui peuvent être déplacées entre le disque et la mémoire physique nous divisons l’espace d’adresses virtuelle en morceaux que l’on appel pages • Le morceau de mémoire physique qui correspond à une page est un cadre de page (Page Frame) ou tout simplement cadre

  8. Pagination • Adresses de 16-bits résultent dans un espace virtuel de 64KO • Cet ordinateur en particulier a seulement 32KO de RAM • Le MMU mappe les adresses virtuelles utilisées par le CPU en adresses physiques qui sont mises sur le bus

  9. Pagination • Manques (un X) veulent dire que la page n’est pas en mémoire et le MMU Trap au SE pour que la page soit chargée • Ceci est un défaut de page • Quand cela ce produit le SE charge la nouvelle page dans un cadre de page (possiblement en expulsant une page qui est en utilisation) et met à jour le MMU avec la nouvelle information • La place où cette information est stockée s’appel Table de pages

  10. Tables de pages • La table de pages stock un nombre d’entrées, une pour chaque page en mémoire virtuelle, indiquant si la page est dans la mémoire physique (notez que une table de pages est requise pour chaque processus!) • Considérez une adresse de 16-bit avec des pages de 4KO • 4KO=212, donc nous avons 24=16 pages virtuelles à mapper

  11. Tables de Pages Adresse virtuelle qui entre 16 Entrées Adresse physique qui sort

  12. Tables de Pages (Exemple) Adresse virtuelle qui entre 8196 dec – 2004 hex Adresse physique qui sort 24,580 dec - 6004

  13. Tables de Pages • Quelles sont les entrées dans la table de pages? • Bit de présence (pour que l’on puisse savoir si on va sur le disque ou non…aussi appelé bit de validité) • Bit de modification (Dirty bit) (pour que l’on puisse savoir si la page a été modifiée et doit être ré-écrite sur le disque durant la pagination.) • Bit d’utilisation? (nous aide à décider quelle page nous allons permuter… nous allons en voir plus sur cela avec les algorithmes de remplacement de pages) • Bit est mise à jour par une lecture ou une écriture

  14. Tables de Pages • Quelles sont les entrées dans la table de pages? • Bit de Cache inhibé – utilisé pour indiquer que les références à cette page doivent toujours venir de la mémoire et non de la cache • Utilisé quand les périphériques sont mappés à la mémoire • Numéro du cadre de page – La raison de vivre pour la table

  15. Tables de Pages • Quelles sont les entrées dans la table de pages? • Bits de protection – Peut spécifier qu’est-ce que l’utilisateur peut faire avec la page ie: lire / écrire / exécuter • Grandeur typique d’une entrée dans la table de pages 16, 32, ou 64 bits (typiquement 32)

  16. Tables de Pages • Où est-ce que l’on tiens la table de pages pour le processus courrant? • Pour de petites tables de pages (16 à 1024 entrées) la table entière pourrait être contenue dans des registres à l’intérieur du MMU • On se souvient que cela demande que le SE change le MMU avec une nouvelle mappe de mémoire pour chaque nouveau processus durant un changement de contexte • Cependant pour un espace d’adresses avec 32-bits et des pages de 4KO, le nombre d’entrées dans la table est de Un MILLION!!! • Si une seule entrée dans la table contiens 32 bits cela demande 4MO d’espace pour stocker la table…un ordinateur très dispendieux!

  17. Tables de Pages • Où ailleurs pourrait-on stocker l’information de la table pour le processus courrant? • Dans la mémoire principale • Plus lent que les registres • Sur le disque • Vraiment trop lent pour nos besoins, mais on peut tricher un peut, plus d’information le prochain cours! • Une combinaison • Une mixture de registres, mémoire, et disque peut être utilisée dans un système (pagination à niveaux multiples).

  18. Quiz Time! Questions?

More Related