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 dexploitation Mémoire virtuelle II (Tanenbaum 4.3)

Présentations similaires


Présentation au sujet: "GEF 435 Principes des systèmes dexploitation Mémoire virtuelle II (Tanenbaum 4.3)"— Transcription de la présentation:

1 GEF 435 Principes des systèmes dexploitation Mémoire virtuelle II (Tanenbaum 4.3)

2 Revue Quelle partie du matériel transforme les adresses logiques en adresses physiques? Comment on appel lévénement quand une Trap est fait au SE parce quune page nest pas en mémoire?

3 Synopsis Tables de pages multiniveaux Répertoire de pages actives ( Translation Lookaside Buffer ) Tables de pages inversées

4 On se souvient: Pagination Adresse logique Notre solution jusquà maintenant Adresse physique 4 bits12 bits Virtual PageOffset PAGE TABLE 3 bits12 bits Page FrameOffset 16 Entries

5 Tables de pages multiniveaux Avec lagrandissement des systèmes (adressage à 32 bits et plus) nous ne pouvons pas garder une simple table de pages dans des registres à lintérieur du MMU À moins dutiliser des pages très, très larges Mais des pages qui sont très, très larges causent du gaspille de mémoire pour les petits processus

6 Tables de pages multiniveaux Considérez: plusieurs programmes, en fait la majorité des programmes nutiliseront pas entièrement leur espace de mémoire virtuel. Ils utiliseront leurs textes, piles et le tas, mais entre le texte/tas et la pile, il y aura un très grand espace de la table de pages inutilisé. Pourquoi ne pas laisser lespace inutilisé ailleurs… comme sur le disque?

7 Tables de pages multiniveaux Cependant, pour garder une partie de la table sur le disque, elle doit être séparée en parties. Solution: paginer la table de pages Exemple: adresses de 32 bits, pages de 4KO Requiert 2 20 entrées dans la table de pages Sépare la table de pages en un répertoire (premier niveau) qui contient 1024 entrées et 1024 tables de pages (deuxième niveau) qui contiennent 1024 entrées pointant aux pages du programme (on a encore 1méga pages)

8 1024 Tables de Pages 10 bits 12 bits Index de répertoireIndex de PageOffset Répertoire 18 bits ???12 bits Cadre de PageOffset 1024 Entrées PTR 1024 Entrées

9 Tables de pages multiniveaux Cet exemple a seulement deux niveaux, mais nous pouvons avoir autant de niveaux que nous voulons pour garder la grandeur des tables raisonnable Si on a des tables de pages qui sont la même grandeur que les pages de programmes, ces tables peuvent à leurs tour être paginées entre le disque et la mémoire Au minimum, seulement la page répertoire et une table de pages doit être gardées en mémoire, ce qui réduit grandement nos besoins de mémoire Cependant, cela viens quand même avec un coût...

10 La moitié dune illusion... La raison davoir de la mémoire virtuelle est pour créer lillusion que nous avons considérablement plus de RAM quen réalité Jusquà date, nous avons joué un tour au processus en lui faisant accroire que la mémoire est large, mais avec touts ces niveaux dindirection et daccès au disque, notre tricherie est lente Pourquoi? Pour compléter lillusion, nous avons besoin de réduire le montant de temps requis pour identifier où une page est située

11 Répertoire de pages actives (RPA) Les dessinateurs dordinateurs et de SE ont fait une observation sur le comportement dun programme: Un programme tend à faire un grand nombre de références à un petit nombre de pages. Parce que les programmes ont des boucles et des conditions, le fonctionnement normal dun programme na pas souvent besoin de traitement des exceptions, du programme daide, … Pensez au programmes que vous vous servez et regardez les items dans les menus que vous utilisés rarement ou jamais. Si nous gardons une liste des pages les plus récemment utilisées dans une mémoire rapide (genre cache) alors nous pouvons réduire les recherches dans les tables de pages Cette liste est gardée dans le Répertoire de pages actives ( translation lookaside buffer )

12 Répertoire de pages actives (RPA) Pour permettre un accès rapide, la liste doit être stockée dans la mémoire associative Ce genre de mémoire nous permet de comparer une valeur (numéro de page virtuelle) avec tout les champs de la mémoire associative simultanément. Si la valeur est dans la mémoire associative, le résultat est presque instantané (on obtient le cadre rapidement) Concourant avec le RPA, le MMU commence à regarder dans la table de pages au cas ou linformation nest pas dans le RPA

13 CPU Adresse logique Page virtuelleOffset Numéro de page Numéro de cadre Mémoire Physique Adresse physique Cadre de pageOffset Hit dans RPA RPA Tables de pages

14 Répertoire de pages actives (RPA) Quest-ce quil y a dans le RPA? Si nous ne voulons pas aller chercher dans le RAM, le RPA doit contenir la même information que dans la table de pages (adresse du cadre, bit de présence, bit de modification, etc...) Est-ce que cela fonctionne bien? Sur les ordinateurs avec un RPA qui a 32 entrées, 98% du temps on a un hit et on peut avoir mieux dépendamment du système

15 Mais un instant un système Athlon a des adresses de 64 bits... Maintenant nous avons lillusion dune mémoire très grande pour les processus des utilisateurs Si le système de 64 bits a des pages de 4KO? Nous avons 2 52 entrées dans notre solution de table de pages. Cest 36 PetaOctets!!! (1.8x10 16 ) Utiliser un disque pour stocker 36 million gigaoctets nest probablement pas une solution acceptable... Spécialement quand nous avons besoin dautant despace pour chaque processus!!!

16 Table de pages inversée Une autre solution est davoir une table avec une entrée pour chaque cadre de page dans la mémoire RAM. Même dans les systèmes à 64 bits, le nombre dentrées dans la table est définie par la quantité de RAM installée. De plus, on a besoin dune seule instance de la table, pas une par processus Pour 1GO de RAM et des pages de 4KO on a besoin de seulement 2 30 /2 12 =2 18 =256K entrées La solution sappel Table de pages inversée

17 Table de pages inversée Problèmes avec la table de pages inversée : La traduction entre les adresses virtuelles et physiques est beaucoup plus difficile Ladresse de page virtuelle nest plus lindex dans la table. Au lieu dindexer nous devons maintenant vérifier les entrées dans la table pour savoir si un cadre stock la page virtuelle Vérifier 256K entrées à chaque accès à la mémoire pourrait rendre votre Pentium comme un Commodore 64 ou un Coco de Radio Shack!

18 Table de pages inversée Solutions Un RPA qui est suffisamment précis va grandement réduire la demande pour les recherches dans la table En plus si on garde les cadres de page physiques dans une table de hachage avec les numéros de pages virtuelles comme clés, alors nous pouvons nous servir de ce numéro pour localiser le cadre dans la table Vous allez avoir un nombre dentrées de cadres à chaque clé pour chaque processus, si la table est raisonnablement grande, il ny aura pas beaucoup dentrées à chercher Habituellement 1 ou 2 entrées à chercher, maximum

19 Table de pages inversée La table de hachage est très petite - sa grandeur sera basée sur la grandeur de la mémoire physique

20 Quiz Time! Questions?


Télécharger ppt "GEF 435 Principes des systèmes dexploitation Mémoire virtuelle II (Tanenbaum 4.3)"

Présentations similaires


Annonces Google