La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

GEF 435 Principes des systèmes d’exploitation

Présentations similaires


Présentation au sujet: "GEF 435 Principes des systèmes d’exploitation"— Transcription de la présentation:

1 GEF 435 Principes 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? Two basic schemes: monoprogramming multiprogramming with fixed partitions How do we keep track: Bitmap for each “unit” of memory Linked list keeping track of each segment of used/free memory

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 Not just worried about a single program too large for memory, but also for when we have a number of processes required to run but not enough memory to hold them all simultaneously...

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 Show how the MMU is “part” of the CPU package and demonstrate how a request from the CPU will result in a different address being put on the bus for access.

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 Si je réfère à l’adresse 0, le MMU va convertir l’adresse à 8192, la première adresse du cadre 8K-12K So, a reference to address 8192 (2000hex) (the first byte in 8K-12K) is transformed into 24,566 (5FF6) (the first byte in the 24K-28K page frame) Might ask: how many bits for an address on an 80x86 pc (20)? DOS didn’t go 32 bit until Win95. But the had 24 address lines to allow for 16MB of addressable space! That’s why himem.sys was required to use this extra memory that was required outside of the original 640KB. emm386 was used to move a chunk of dos into higher memory areas so that programs would have more space to place their program text (in the 640K block) without having to muck about in other memory areas....

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
4 bits 12 bits Page virtuelle Offset Adresse virtuelle qui entre Table de pages 16 Entrées This is what is essentially happening inside the MMU For now, consider the 16 entries as registers. 3 bits 12 bits Cadre de page Offset Adresse physique qui sort

12 Tables de Pages (Exemple)
4 bits 12 bits 0010 Adresse virtuelle qui entre 8196 dec – 2004 hex PAGE TABLE 1 2 110 3 4 5 6 7 8 9 A B C D E F Note how it works. They won’t have the important numbers filled in on their slides. Get them to follow the steps. Explain the Present bit, which is a good intro to the next slide on what is in a page table entry. Note that the example in the book is upside down relative to this. 3 bits 12 bits 110 Adresse physique qui sort 24,580 dec

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 Quelles sont les entrées dans la table de pages?
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 Quelles sont les entrées dans la table de pages?
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! show how this is calculated: 232 divided by 212 to give 220 Now show them how large an entry is with what was drawn on the blackboard as a guide. 20 bits for the page in memory. 5 other bits for information. Plus some for the disk address (if required) puts it from 32 to 64 bits for each entry!

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? What information do we need to store in a page table entry? The page frame in memory where it’s located The disk address (maybe) Bits: Present, Dirty, Used, Caching disabled, protection For a 16 bit system with 512Byte pages, how many entries do we have in the page table? 512 is 29 So, 216 divided by 29 is 27=128 What’s 210? OK, 220? Good numbers to know


Télécharger ppt "GEF 435 Principes des systèmes d’exploitation"

Présentations similaires


Annonces Google