Mémoire virtuelle - Ensiwiki
Transcription
Mémoire virtuelle - Ensiwiki
Ensimag : Architecture avancée, SLE/ISI-2A TD 7 Mémoire virtuelle Exercice 1 : Tables de pages inversées La stratégie de traduction d’adresse repose sur l’accès à une table indicée par les bits de l’adresse virtuelle constituant le virtual page number ou VPN. Avec la croissance du nombre de bits d’adresse, par exemple 64, 64 la taille de la table des pages devient potentiellement gigantesque (potentiellement en 2214 = 250 pour des pages de 16 k). Par ailleurs, même si la mémoire physique grossi, sa taille réelle reste très inférieure à celle de la mémoire virtuelle, par exemple sur ma machine : $ cat /proc/meminfo ... MemTotal: 4048720 kB ... VmallocTotal: 34359738367 kB ... Question 1 Imaginons une machine 32 bits avec 256 M de mémoire, combien d’association (VPN, PPN) faut-il maintenir au maximum dans la table des pages ? Que peut-on en déduire ? La réponse à la question précédente nous incite à construire une table de la taille du nombre de page de mémoire physique. Question 2 Quel problème cela pose-t-il ? Comment proposez-vous d’y remédier trivialement ? Peut-on faire mieux ? (question difficile) TD d’architecture - 7 page - 1 Truc : on va utiliser une table de hachage Question 3 Proposer une structure qui permette de faire l’association en utilisant une table de hachage. Quelle problème peut (va) arriver ? Justifier l’utilisation d’un hachage coalescent ou à adressage ouvert (cf. le cours d’algo) ? Autre truc : si la taille de la table de hash est un nombre premier, alors le hachage est théoriquement plus uniforme. Question 4 Comment proposez vous d’utiliser cette propriété ? À quel coût ? TD d’architecture - 7 page - 2