EX08 - Mémoire virtuelle – avec solutions
Exercice 1 : Calcul du temps de chargement des tables des pages
Une machine possède un espace d’adressage de 32 bits et des pages de 8 Ko. La table des pages, entièrement matérielle (c’est-à-dire avec sa propre mémoire pour la table de pages), est constituée d’un mot de 32 bits par entrée. Lorsqu’un processus démarre, la table des pages est copiée en mémoire principale, à raison d’un mot toutes les 100 ns. Si chaque processus s’exécute pendant 100 ms (incluant le temps de chargement de la table), quelle fraction du temps CPU est réservée au chargement des tables des pages?
Exercice 2 : TLB
Une machine a des adresses virtuelles sur 48 bits et des adresses physiques sur 32 bits.
- Si les pages font 4 Ko, combien d’entrées y a-t-il dans a table des pages pour une pagination à un niveau ? Expliquez.
- La machine a maintenant un TLB de 32 entrées. Imaginons un programme dont les instructions tiennent sur une page et qui lit séquentiellement des longs entiers dans un tableau qui s’étend sur des milliers de pages. Le TLB est-il alors un mécanisme efficace ?
Exercice 3 : Table des pages multi-niveaux
Une machine a des adresses virtuelles sur 38 bits et des adresses physiques sur 32 bits.
- Quel est l’intérêt principal d’avoir une table des pages multi-niveaux?
- Avec une table des pages à deux niveaux, des pages de 16 Ko et des entrées sur 4 octets, combien de bits faut-il au champ de la table des pages de plus haut niveau et combien pour le second niveau?
Exercice 4 : Table des pages à deux niveaux
Un ordinateur ayant des adresses 32 bits utilise une table des pages à deux niveaux. Les adresses virtuelles ont trois parties: un champ de 9 bits qui représente le premier niveau, un champ de 11 bits qui représente le second niveau, et un déplacement. De quelle taille sont les pages? Combien en existe-t-il dans l’espace d’adressage?
Exercice 5 : Table des pages à trois niveaux
Supposons qu’une adresse virtuelle de 32 bits soit divisée en 4 champs : a, b, c et d. Les trois premiers sont utilisés pour une table des pages à trois niveaux. Le quatrième champ, d, est le déplacement (offset). Le nombre de pages dépend-il de la taille des 4 champs?
Exercice 6 : TLB
Un ordinateur dont les processus ont 1024 pages dans leur espace d’adressage conserve ses tables des pages en mémoire. Le délai pour lire un mot de la table des pages est de 5 ns. Afin de réduire celui-ci, l’ordinateur a une mémoire associative (TLB) qui contient 32 paires (page virtuelle, case physique) et dans laquelle une recherche prend 1 ns. Quel doit être le pourcentage de pages trouvées dans la mémoire associative pour réduire le temps moyen à 2 ns?
Exercice 7 : Table des pages
Une machine a des adresses virtuelles sur 48 bits et des adresses physiques sur 32 bits. Les pages sont de 8 Ko. Combien d’entrées sont nécessaires pour la table des pages?
Exercice 8 : Mémoire virtuelle
Imaginez une situation dans laquelle il vaudrait mieux ne pas avoir de mémoire virtuelle plutôt qu’en avoir une. Expliquez.
Exercice 9 : Mémoire virtuelle
Cet exercice a été proposé par l’université de Harward et a inspiré une scène du film The Social Network
Supposons que l’on nous donne un ordinateur avec des adresses virtuelles
sur 16 bits et une taille de page de 256 octets. Le système utilise des
tables de pages à un niveau, qui commencent à l’adresse 0x0400. (Les
premières pages sont réservées pour des registres du hardware)
Supposons que les entrées de la table des pages soient composées de huit bits d’état :
- 1 bit de validité
- 1 bit de modification
- 1 bit de référence
- 5 bits de permission (il s’agit d’un système très sécurisé).
Combien y a-t-il de pages ? Quelle quantité de mémoire les tables de pages requièrent-elles ?