Ce sujet de TD a été conçu par le Département Informatique du Conservatoire National des Arts et Métiers.
Le but de ce TD est d’étudier les systèmes de pagination pour la mémoire virtuelle.
Qu’est-ce que la mémoire virtuelle? Donnez trois raisons pour lesquelles il est intéressant de disposer d’un mécanisme de mémoire virtuelle sur un ordinateur moderne.
Qu’est-ce qu’une MMU? A quoi sert le TLB d’une MMU?
Pourquoi les tailles des pages sont-elles toujours des puissances de deux?
Considérons un premier ordinateur, qui exécute un processus avec 137 pages virtuelles déjà chargées en mémoire physique. Le coût pour lire une entrée de la table des pages est de 10ns (ce temps comprends la mise à jour de la TLB). La TLB de cet ordinateur peut stocker les 32 traductions les plus récentes et fournit son résultat en 3ns. Quel pourcentage des accès mémoire doit-il concerner des pages référencées dans la TLB pour avoir un cout moyen d’accès a une page physique égal a 5ns?
On considère un deuxième ordinateur a processeur 64 bits, disposant également d’un espace d’adressage sur 64 bits. Ce système dispose de 256 Mo (c’est-a-dire de \(2^{28}\) octets) de mémoire physique, organisée en pages de 4 ko. Quel est le nombre maximal d’entrées dans la table des pages?
Pour ne pas avoir a utiliser autant de mémoire physique pour gérer la mémoire virtuelle, on peut utiliser une table des pages inverse, possédant autant d’entrées que de pages physiques. Décrivez le principe d’une telle table des pages inverse. Donnez les avantages et inconvénients d’une telle implémentation par rapport au système classique de table des pages.
Quel(s) mécanisme(s) peu(ven)t-il(s) être utilise(s) pour réduire le surcout inhérent a ce système?
Quels problèmes ce système pose-t-il vis-à-vis de la mémoire partagée? Quelle solution pouvez- vous envisager?
On considère un système de gestion de mémoire paginée a deux niveaux tel que:
les adresses virtuelles et physiques sont toutes deux codées sur 32 bits;
les 10 premiers bits de l’adresse virtuelle forment le premier index, les 10 bits suivants forment le deuxième index, et les 12 bits restants le déplacement;
on suppose que chacune des entrées de ces tables est sur 32 bits.
Soit un processus P ayant alloué les segments suivants (les adresses de début et de fin sont données en binaire. L’adresse de fin est exclue.):
0000001000.0000000000.000010101010 → 0000001000.0000000010.101010101010
0000000010.0000000000.000010101010 → 0000000010.0000000000.000100000000
0000000010.0000000100.000000000000 → 0000000010.0000000100.111111111111
1000000000.0000000000.000000000000 → 1000000010.0000001111.000000000000