Modulo 7: Gestione della Memoria Gerarchia di memoria e background Spazio logico rispetto a spazio fisico degli indirizzi Swapping Allocazione contigua Paginazione Segmentazione Segmentazione e Paging 7.1
Gerarchia di memoria velocità REGISTRI capacità di immagazzinamento CACHE MEMORIA PRINCIPALE BACKING STORE DISK DRIVER MAGNETIC TAPE LIBRARY 7.2
Risoluzione degli indirizzi La risoluzione degli indirizzi delle istruzioni e dei dati può avvenire in tre fasi distinte: Compile time: Se la locazione di memoria è nota a priori si può generare codice con indirizzi assoluti; ma occorre ricompilare il codice se la posizione di partenza cambia. Load time: Se la locazione di memoria è nota a tempo di compilazione occorre generare codice rilocabile. Execution time: Se il processo può essere spostato in memoria durante la sua esecuzione da un segmento ad un altro, la risoluzione dell indirizzo è ritardata fino al tempo di esecuzione. Occorre supporto HW per mappare gli indirizzi logici in indirizzi fisici. 7.3
Politiche di gestione della memoria Sistemi dedicati per singolo utente Sistemi di multiprogrammazione in memoria reale Sistemi di multiprogrammazione in memoria virtuale multiprogrammazione con partizioni fisse multiprogrammazione con partizioni variabili Paginazione Segmentazione Segmentazione paginata Indirizzamento Indirizzamento assoluto rilocabile 7.4
Overlay Monitor main OV2 OV3 Overlay OV1 64 K 7.5
Swapping Monitor swap out utente 1 Utente 1 utente 2 Spazio utente swap in 64 K 7.6
Partizioni fisse con indirizzamento assoluto Monitor User 1 lower bound User 2 User 3 upper bound 128 K User 4 7.7
Partizioni fisse con indirizzamento assoluto lower bound upper bound CPU address no si no si Memoria violazione della protezione 7.8
Partizioni fisse con indirizzamento rilocabile Monitor 2 1 2 Partizione 1 4 3 Partizione 2 7 11 8 Partizione 3 14 12 Partizione 4 128 K 7.9
Partizioni fisse con indirizzamento rilocabile limite base CPU address < no si trap al S.O. violazione della protezione + Memoria 7.1
Partizioni variabili 4 K 1 K Monitor Job 1 4 K 1 K Job Job 2 2 Job 2termina end Monitor Job 1 Alloca Job 4 4 4 K K 1 1 K K Monitor Job 1 Job 4 Job 1 end 4 K 1 K Monitor Alloca Job 5 4 K 9 K 1 K Monitor Job 5 Job 4 Job 4 17 17 K K 17 K 17 K 2 K 2 K 2 2 K K 2 K 2 K 23 K Job 3 23 K Job 3 23 23 K K Job 3 23 K Job 3 23 K Job 3 256 K 256 K 256 256 K K 256 K 256 K 7.11
Compattazione 3 K 5 K 6 K Monitor Job 1 Job 2 4 K 3 K 5 K 6 K 8 K Monitor Job 1 Job 2 Job 3 3 K 5 K 6 K Monitor Job 1 Job 2 Job 4 3 K 5 K 6 K Monitor Job 1 Job 2 1 K 12 K Job 3 12 12 K Job 4 1 K 12 K Job 3 9 K 15 K 19 K 21 K 3 K Job 4 2 K 21 K 9 K 21 K 9 K 15 K 19 K 21 K Job 4 Job 3 7.12
Memoria virtuale - Paginazione Frame number Pagina Pagina 1 Pagina 2 1 2 3 1 5 3 7 Page table 1 2 3 (pagina ) (pagina 2) Pagina 3 4 5 (pagina 1) Memoria logica 6 7 (pagina 3) Memoria fisica 7.13
Implementazione della paginazione si tiene in memoria una page table. il Page-table base register (PTBR) punta all inizio della page table. il Page-table length register (PRLR) indicata le dimensioni della page table. 7.14
Traduzione dell indirizzo Indirizzo virtuale CPU page# p offset# d Indirizzo fisico frame# f offset# d frame# Page table base Register Frame + page# frame# Memoria fisica Page Table 7.15
Implementazione della paginazione in questo schema ogni accesso a ciascun dato o istruzione richiede due accessi alla memoria: uno per la page table e uno per un dato o istruzione. il problema dei due accessi alla memoria può essere risolto mediante un HW speciale detto memoria associativa o translation look-aside buffer (TLB) 7.16
Translation Lookaside Buffer Ricerca in parallelo su tutte le entry chiave (numero di pagina) page# frame# valore (indirizzo di inizio del frame) 7.17
Traduzione dell indirizzo con TLB Indirizzo virtuale CPU accede alla table solo se non c'è match di alcuna chiave page# p offset# d prova prima nel TLB page# p f TLB fornisce f solo se c'è match di una chiave frame# f offset# d Indirizzo fisico frame# Frame + frame# Page table base Register Page table Memoria fisica 7.18
Tempo effettivo di accesso 8% hit ratio (percentuale di successo nell accesso alla memoria associativa) 5 ns tempo di accesso per il TLB 75 ns tempo di accesso in memoria 7.19
Tempo effettivo di accesso Se l indirizzo di pagina è nella TLB il tempo per accedere al dato in memoria è: t CAM + t mem = 8 ns Se l'indirizzo non è in TLB si hanno si hanno questi tempi d accesso: 5 ns failure in TLB 75 ns per ottenere l indirizzo di pagina 75 ns per ottenere il dato indirizzato t CAM + t page table + t mem = 155 ns Il tempo di accesso medio risulta:.2 *155 +.8*8= 31 + 64 = 95 ns 7.2
Segmentazione Ad ogni entità logica del programma (e.s. routine, stack, matrici...) viene assegnato un segmento. I segmenti, contrariamente alle pagine, hanno dimensioni variabili. 7.21
Traduzione dell indirizzo Segment table base Register Indirizzo virtuale + segment# offset# base# segment# AR limite base# + offset# Segmento limite Segment table Memoria fisica 7.22
Segmentazione paginata Segment table base Register Accede alla table solo se non c'è match di alcuna chiave + s Indirizzo virtuale segment# s page# p offset# d s,p prova prima nel TLB s p Fornisce f solo se c è match di una chiave f segment# TLB PT address page# frame# f Segment Table frame# f offset# d 7.23 Page Table Indirizzo reale
Traduzione degli indirizzi a 2 livelli Linear address 31 21 11 PDE Byte 1 di 496 1 di 124 PTE 1 di 124 Page directory Page table Page frame 7.24
Architettura ad Inverted Page Table Indirizzo virtuale PID page# offset# Funzione di Hash Page# Page Table Entry Chain frame# Hash Table Inverted Page Table frame# offset# Indirizzo reale 7.25
Prestazioni della paginazione a più livelli Poiché ciascun livello è memorizzato in una tabella separata in memoria, passare dall indirizzo logico a quello fisico può richiedere 4 accessi in memoria. Il TLB permette di ottenere prestazioni ragionevoli. TLB hit ratio del 98% sono comuni e producono, in questo esempio, un tempo effettivo d accesso pari a:.98 x 12 +.2 x 52 = 128 nanosecondi che corrisponde ad un rallentamento del 28% 7.26