Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr VIII. Gestion Mémoire (Mémoire Virtuelle)
Systèmes sans mémoire virtuelle Mémoire Adresses physiques 0: 1: CPU N-1: Les adresses émises par les programmes «pointent» directement sur des emplacements en mémoire physique Exemples: la plupart des machines Cray, les premiers PC, pratiquement tous les systèmes embarqués, etc. 2
Systèmes avec mémoire virtuelle Mémoire Adresses virtuelles MMU 0: 1: Adresses physiques 0: 1: CPU P-1: N-1: Disque Le programme émet des adresses virtuelles Traduction d adresses : le matériel (MMU mémory management Unit) convertit les adresses virtuelles en adresses physiques via une table gérée par le SE (table des pages) Exemples: stations de travail, serveurs, PC modernes, etc. 3
Mémoire virtuelle : motivations 1. Simplifier la gestion mémoire Plusieurs processus résidant en mémoire physique» chaque processus a son propre espace d adressage Seules les parties actives du code et des données ont besoin d être en mémoire physique à un instant donné» on alloue de la mémoire aux processus au fur et à mesure qu ils en ont besoin 2. Utiliser la mémoire physique comme un cache pour le disque l espace d adressage d un processus peut être plus grand que la taille de la mémoire physique la somme de tailles des espaces d adressage de plusieurs processus dépasse la capacité de la mémoire physique 3. Protéger les processus entre eux Un processus ne peut pas interférer avec un autre processus» car ils travaillent dans des espaces d adressage disjoints Un processus utilisateur ne peut pas accéder à une information privilégiée» différentes sections des espaces d adressage peuvent avoir des droits d accès différents 4
Hiérarchie mémoire cache Mémoire virtuelle CPU CPU regs regs C a c h e Mémoire disque disque taille: Temps d accès (ns) : Registres Cache Mémoire Mémoire secondaire < 1KO 0,25-0,5 < 16 MO 0,5-5 < 32 GO 50-70 > 100 GO 5 10 6 à 20 10 6 coût ($/Goctet) : - 4K-10K 100-200 0,5-2 Plus grand, plus lent, moins cher (* Valeurs typiques pour une station de travail en 2004) 5
Un exemple d hiérarchie mémoire Dispositifs de stockage plus petits, plus rapide, et pus chers (par octet) L2: L1: L0: registres on-chip L1 cache (SRAM) Cache L2 (SRAM) Les registres contiennent des mots lus dans le cache L1 Le cache L1 contient des blocs du cache L2 Le cache L2 contient des blocs de la mémoire principale Dispostifs de stockage plus gros, plus lents, et moins chers (par octet) L5: L4: L3: Mémoire principale (DRAM) Disques locaux Disques distants (systèmes de fichiers distribués, serveurs Web La mémoire principale contient des blocs (pages) des disques locaux Les disques locaux contiennent des informations obtenues depuis des serveurs distants 6
Motivation 1: gestion mémoire Plusieurs processus peuvent être en mémoire physique en même temps Comment résoudre des conflits d adresses? (Que se passe-il si 2 processus accèdent à la même adresse? ) Image mémoire d un processus Linux/x86 0xffffffff 0xc0000000 0x40000000 0x08048000 0 mémoire virtuelle noyau (code, données, tas, pile) Pile utilisateur région où sont mappées les bibliothèques partagées tas (géré par malloc et free) read/write segment (.data,.bss) read-only segment (.init,.text,.rodata) non utilisé mémoire invisible au code utilisateur %esp (pointeur de pile) chargé depuis le fichier exécutable 7
Espaces d adressage virtuelles séparées Espace d adressage virtuel du processus 1 0 N-1 PV 1 PV 2... Traduction d adresses 0 PP 2 Espace d adressage physique (DRAM) Espace d adressage virtuel du processus 2 0 N-1 PV 1 PV 2... M-1 PP 7 PP 10 (code à lecture seule des bibliothèques partagées par ex.) Les espaces d adressage virtuelle et physique sont divisés en blocs de même taille» ces blocs sont appelés des pages (les blocs virtuels et les blocs physiques) Chaque processus a son propre espace d adressage» le SE contrôle l affectation de pages virtuelles aux pages physiques 8
Motivation 2: DRAM cache pour le disque L espace d adressage d un processus est très grand : adresses sur 32 bits : ~4.000.000.000 (4 milliards) octets adresses sur 64 bits : ~16.000.000.000.000.000.000 (16 10 18 ) octets Mémoire disque ~100X moins chère que la mémoire DRAM 10 GB de DRAM: ~ $1 200 10 GB de disque : ~ $10 Pour accéder à de grandes quantités de données à un coût moindre, la majeure partie des données doit être stockée sur disque 4 MB: ~$400 SRAM 1 GB : ~$120 DRAM 100 GB: ~$100 Disk (* Valeurs typiques 2004) 9
Localiser un objet dans un cache un tag est associé à chaque bloc du cache ce tag réalise la correspondance blocs du cache => blocs en mémoire principale pas de tag pour les blocs qui ne sont pas dans le cache l accès est fait par le matériel (mémoire associative) accès rapide (recherche en parallèle) Nom de l objet X = X? 0: 1: N-1: tag Cache donnée D 243 X 17 J 105 10
Localiser un objet en mémoire virtuelle chaque page de la mémoire virtuelle a une entrée dans la table des pages correspondance pages virtuelles => pages physiques même une page virtuelle qui n est pas en mémoire centrale a une entrée dans la table des pages spécifie une adresse sur disque les informations sur disque sont retrouvées par le système d exploitation Table des pages Cache localisation données nom de l objet D: 0 0: 243 X J: sur disque X: 1 1: N-1: 17 105 11
Défaut de page Que se passe-t-il si l objet recherché est sur disque au lieu d être en mémoire? Avant défaut de page l entrée de la table des pages indique que l adresse virtuelle n est pas en mémoire une exception de défaut de page est générée, le traitement de cette exception consiste à charger les données du disque vers la mémoire» le processus courant est suspendu, et le processeur est alloué à un autre processus» le SE décide de l allocation de la mémoire physique pour charger les données, au besoin en copiant (vidant) d autres données sur disque CPU Adresses virtuelles Table des pages Adresses physiques Disque Mémoire CPU Adresses virtuelles Table des pages Adresses physiques Disque Mémoire Après défaut de page 12
Traitement d un défaut de page (1) Le processeur «commande»au contrôleur d E/S lire un bloc de longueur P à partir de l adresse disque X et le ranger à l adresse mémoire Y (2) Le contrôleur lit les données lecture par DMA (Direct Memory Access) pas d intervention du processeur (3) le contrôleur d E/S signale la fin de la lecture par interruption le SE peut relancer le processus suspendu Processeur Reg Cache Cache (2) Transfert DMA Mémoire (1) commande de lecture (3) lecture terminée Bus Bus Mémoire-E/S disk Disque Contrôleur d E/S d E/S disk Disque 13
Motivation 3: protection Les entrées de la table des pages contiennent l information de protection (droits d accès) Processus i: PV 0: PV 1: Table des Pages Read? Write? Yes Yes No Yes Adr. Phys. PP 9 PP 4 0: 1: Mémoire PV 2: No No XXXXXXX Processus j: PV 0: PV 1: PV 2: Read? Write? Yes Yes No Yes No No Adr. Phys. PP 6 PP 9 XXXXXXX N-1: Le matériel assure la protection en générant une exception si violation de protection 14
Traduction des adresses virtuelles (1/2) V = {0, 1,..., N 1} : espace d adressage virtuel P = {0, 1,..., M 1} : espace d adressage physique MAP: V P U { } : fonction de traduction d adresses MAP(α) = α' si donnée à l adresse virtuelle α présente à l adresse physique α dans P si donnée à l adresse virtuelle α non présente dans P Processeur α Adresse virtuelle défaut de page matériel de traduction d adresses partie du MMU sur le processeur α' Traitant d exception Mémoire principale adresse physique Mémoire secondaire le SE fait le transfère (seulement si défaut de page ) 15
Traduction des adresses virtuelles (2/2) Paramètres P = 2 p = taille d une page en octets N = 2 n = taille de l espace d adressage virtuelle M = 2 m = taille espace d adressage physique n 1 p p 1 0 N de page virtuelle déplacement adresse virtuelle Traduction d @ m 1 p p 1 0 N de page physique déplacement adresse physique Note : le déplacement ne change pas 16
Tables des pages N de page virtuelle Table des pages résidant en mémoire (page physique ou adresse sur disque) Valide 1 1 0 1 1 1 0 1 0 1 Mémoire physique Disque (espace de swap ou fichier classique du SGF) 17
Traduction d @ via la table des pages Registre de base pour la table des pages Adresse virtuelle n 1 p p 1 0 N de page virtuelle (NPV) depl. dans la page valide Droits accès N de page physique (NPP) si valide=0 la page n est pas en mémoire m 1 p p 1 N de page physique (NPP) depl. dans la page 0 adresse physique 18
Fonctionnement de la table des pages Traduction des adresses - consulter la table des pages une (un ensemble de) table(s) propre à chaque processus NPV sert à indexer la table des pages Calcul de l adresse physique l entrée de la table de page (ETP) contient des informations sur la page (ex. un bit valide qui indique si la page est présente en mémoire)» si (bit valide = 1) alors la page est en mémoire physique utiliser le n de page physique (NPP) pour construire l @ physique» si (bit valide = 0) alors la page est sur le disque exception de défaut de page Page on doit ramener la page du disque en mémoire centrale pour que le processus puisse reprendre son exécution Protection le champ droits d accès d une ETP indique les types d accès autorisés sur la page (ex: lecture seule, lecture/écriture) exception de violation de protection si l utilisateur n a pas les droits nécessaires squelles autres informations sont contenues dans une ETP? 19
Mémoire virtuelle et cache La plupart des caches contiennent des adresses physique accès au cache en utilisant une adresse physique permet à plusieurs processus d avoir des blocs dans le cache au même moment permet le partage de pages par plusieurs processus le cache n est pas concerné par les problèmes de protection» les droits d accès sont vérifiés lors de la traduction d adresse (par le mécanisme de mémoire virtuelle) @V @P miss CPU traduction Cache données Traduction d adresse avant accès au cache hit Mémoire Principale mais ceci peut nécessiter un accès à la mémoire (lecture de l entrée de la table des pages) évidemment, les entrées de la table des pages peuvent aussi être dans le cache 20
Accélérer la traduction d adresses Translation Lookaside Buffer (TLB) cache dans l unité de gestion mémoire (MMU - Memory Management Unit) traduit les n de pages virtuelles en n de pages physiques contient un petit nombre d entrées (complètes) de la table des pages CPU @V @P miss hit TLB Cache lookup Mémoire principale miss hit Table des pages données 21
Traduction d @ avec un TLB n 1 p p 1 0 virtual page number page offset virtual address valid tag physical page number... TLB TLB hit = physical address tag valid tag data index byte offset Cache cache hit = data 22
Tables des pages multi-niveaux Considérons un système avec les caractéristiques suivantes : taille des pages : 4K octets (2 12 ) taille des adresses : 32 bits 4 octets par entrées de la table des pages Taille des tables des pages? Au moins 4 M octets (2 20 *4 ) une table par processus Solution communément utilisée tables des pages multi-niveaux ex: table 2 niveaux (ex : pentiums)» table de niveau 1 : 1024 entrées, chaque entrée pointe sur une table de niveau 2» tables de niveau 2 : 1024 entrées, chaque entrée pointe sur une page Table de niveau 1 Tables de niveau 2... 23
Fin du chapitre VIII Plus sur la gestion mémoire... Cours de Systèmes d Exploitation A2