Lezione 19 Memoria Virtuale



Documenti analoghi
Esercitazione su Gerarchie di Memoria

Lezione 19 Memoria Virtuale

memoria virtuale protezione

La memoria virtuale. Calcolatori Elettronici. Valeria Cardellini Rielaborate da Salvatore Tucci

La Memoria Virtuale Valeria Cardellini

SOLUZIONI: Memoria virtuale

Esercitazione su Gerarchie di Memoria

Memoria Virtuale e I/O. Paolo Baldan. Introduzione. Gerarchie di memoria: Cache. Gerarchie di Memoria CPU

La memoria cache. Lab di Calcolatori

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

Memoria Virtuale e I/O

Calcolo prestazioni cache (1)

La gerarchia di Memoria

Von Neumann Bottleneck

Lezione 19 Memoria Virtuale

Le virtual machine e la memoria virtuale

Memoria virtuale. Daniele Loiacono, Vittorio Zaccaria

La gerarchia di Memoria

Modulo 7: Gestione della Memoria

Capitolo 8 - Silberschatz

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Introduzione alle gerarchie di memoria

Architettura degli Elaboratori 19 Memoria Virtuale. Prof. Andrea Sterbini

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Prestazioni delle cache

Miglioramento delle prestazioni

Gestione della memoria

Introduzione alle memorie cache. Sommario

Gestione della memoria centrale. Capitolo 8 - Silberschatz

Università degli Studi di Cassino

Fallimenti nella TLB

10. Memoria Virtuale. Esercizi

Architettura dei sistemi di elaborazione: La memoria (parte 2)

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Calcolo prestazioni cache (1)

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1

Università degli Studi di Cassino e del Lazio Meridionale

Capitolo 4 Gestione della Memoria

Le virtual machine e la memoria virtuale

La gerarchia di Memoria

Calcolatori Elettronici B a.a. 2007/2008

Calcolatori Elettronici B a.a. 2008/2009

Calcolatori Elettronici

Memory management. Le attività di memory management del SO per la condivisione da parte di più processi

Sistemi operativi e distribuiti

Gestione della memoria centrale. Marco Cesati. Schema della lezione. Memoria centrale. Linux su Intel IA-32 SO Gestione della memoria centrale

Lezione 7. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Gerarchie di memoria Roberto Bisiani 5/22/2002 1

La gerarchia di Memoria. Calcolatori Elettronici

Prestazioni & Co: CPU, Memoria, I/O

Gestione Memoria. Gestione della memoria

Le memorie Cache. Sommario

Architettura degli elaboratori - 2 -

SISTEMI OPERATIVI. Gestione della memoria. Gestione della memoria. Partizionamento Paginazione Segmentazione Memoria virtuale. 08.

Gestione della Memoria

! Per essere eseguiti, i programmi devono essere trasferiti (dal disco) in memoria e tradotti in processi.!

Gerarchia di memoria

La gerarchia di Memoria

Gerarchia di memoria

Desiderata: memoria capiente e veloce. Connessioni tra livelli di memoria. Tecniche impiegate. Memoria cache, struttura. Metodo:

Esercizio. Si consideri una cache con 64 blocchi di 16 byte ciascuno. A quale numero di blocco corrisponde l indirizzo 1200 espresso in byte?

Lezione di Tutorato Di Architettura degli Elaboratori B 29/04/2005. SOLUZIONI: Cache

Struttura delle memorie cache

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

! 11.2! Silberschatz, Galvin and Gagne 2005! Operating System Concepts 7 th Edition, Jan 1, 2005!

La gestione della memoria su IA-32. Lez. 32 Sistemi Operativi

Architettura degli elaboratori - 2 -

Segmentazione. Gestore della memoria II parte. Segmentazione. Segmentazione: Vantaggi. Segmentazione 07/06/2012. Confronto Paginazione - Segmentazione

Struttura delle memorie cache

Le memorie Cache a mappatura diretta

PROVA SCRITTA DEL MODULO DI. CORSO DI LAUREA IN INGEGNERIA ELETTRICA ED ELETTRONICA, INGEGNERIA BIOMEDICA 14 febbraio 2017

Le memorie Cache. Sommario

Struttura delle memorie cache

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Sistemi operativi e distribuiti

Le memorie Cache n-associative

MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI

memoria virtuale protezione

Parte IV. Gestione della Memoria

Parte IV Gestione della Memoria

Monoprogrammazione. Gestione della memoria. Una risorsa scarsa. Parte IV. Gestione della Memoria

Gestione della memoria

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:

Gerarchia di memoria

Gli attori principali di un architettura

Struttura delle cache a indirizzamento diretto

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Struttura delle memorie cache

Le virtual machine e la memoria virtuale

Esercizi sulle prestazioni delle memorie cache

Università degli Studi di Cassino

Criteri di caratterizzazione di una memoria

Gestione della memoria per sistemi multiprogrammati. Obiettivi. Partizioni fisse. Partizioni fisse. Fondamenti di Informatica

static dynamic random access memory

Memoria Virtuale. Lezione 6-7 Sistemi Operativi

Struttura dei Sistemi di Calcolo

Transcript:

Lezione 9 Memoria Virtuale http://www.dii.unisi.it/~giorgi/didattica/arcal All figures from Computer Organization and Design: The Hardware/Software Approach, Second Edition, by David Patterson and John Hennessy, are copyrighted material. (COPYRIGHT 998 MORGAN KAUFMANN PUBLISHERS, INC. ALL RIGHTS RESERVED.) Figures may be reproduced only for classroom or personal educational use in conjunction with the book and only when the above copyright line is included. They may not be otherwise reproduced, distributed, or incorporated into other works without the prior written consent of the publisher. Roberto Giorgi, Universita di Siena, C6L9, Slide Other material is adapted from CS52 Copyright (C) 2 UCB

Disk Caching (!= Memoria Virtuale) Idea: utilizzare la Memoria Principale come se fosse una cache del disco Scopo: ridurre il tempo medio di accesso ai file che stanno su disco Memoria Principale DISCO -5 clks 5 clks Funzionamento: e una cache implementata completamente a software Memorizza i blocchi di disco piu recentemente utilizzati Su hit, ottengo un tempo di accesso di 5 /= 4 volte maggiore La tecnica e usata da Windows, Linux e altri sistemi operativi Roberto Giorgi, Universita di Siena, C6L9, Slide 2

Memoria Virtuale Obiettivi delle tecniche di caching Memoria Disco Disk Caching migliorare il tempo di accesso file Memoria Virtuale creare uno spazio di indirizzamento piu largo (con tempi di accesso simili alla memoria principale) Uso il disco come memoria esterna rispetto alla memoria principale: il livello successivo nella gerarchia di memoria La memoria contiene una copia delle istruzioni/dati piu recentemente usati Tutto il resto sta su disco Roberto Giorgi, Universita di Siena, C6L9, Slide 3

Memoria Virtuale: vantaggi Crea l illusione di un enorme quantita di memoria (molto piu ampia della memoria fisica realmente disponibile nel calcolatore) Rimuove i vincoli di programmazione legati all avere una memoria di dimensioni limitate Rilocazione dei programmi non necessaria Il programma viene caricato in uno spazio di memoria che e completamente vuoto per ogni programma, ovvero ogni programma ha a disposizione tutti gli indirizzi di uno proprio spazio virtuale privato Protezione dei programmi Porzioni dello spazio di indirizzamento possono essere rese condivise in maniera controllata ed efficiente Un programma non puo accedere allo spazio di indirizzamento privato di un altro programma Il tutto funziona grazie ancora al principio di localita In un certo intervallo di tempo lo working set del programma e abbastanza limitato Roberto Giorgi, Universita di Siena, C6L9, Slide 4

Memoria Virtuale: Funzionamento L unita di trasferimento fra memoria e disco e la pagina La pagina ha una dimensione tipica di 4-6KB Indirizzi Virtuali Indirizzi Fisici Memoria Principale swap-in swap-out Meccanismo di traduzione degli indirizzi DISK La Pagina Virtuale indirizzata puo trovarsi sul disco anziche nella memoria fisica swap-in Roberto Giorgi, Universita di Siena, C6L9, Slide 5

Tempi di accesso Rapporti tipici fra i tempi di accesso di vari tipi di memoria LL2 L2MEM MEMDISCO t t t penalty, L t hit, L penalty, L 2 t hit, L 2 penalty, MEM t hit, MEM Nel caso di un page-miss, o meglio di un page-fault, il tempo di penalty risulta molto grande = = = 5 5 Roberto Giorgi, Universita di Siena, C6L9, Slide 6

Esempio Il processore P, viaggia a 3 MIPS e /3 delle istruzioni generate da un certo programma sono di tipo LD P fa 3/3 = milioni di load/secondo Supponiamo che L e L2 insieme riescano a servire il 95% delle richieste la Memoria Principale deve servire.5 x 7 = 5 x 5 load/secondo Supponiamo che il Disco possa servire 5 richieste/secondo (considerando un rapporto di : per servire un miss). Determinare il tempo di esecuzione del programma ipotizzando che l hit-rate della memoria principale assuma i seguenti valori: Hit Rate Richieste al disco Tempo di Esecuzione Memoria Principale per secondo del Programma..... % (normalizzato) 99.999% 5 99.99% 5 99.9% 5 9.% 5 Roberto Giorgi, Universita di Siena, C6L9, Slide 7

Memoria Virtuale: Caratteristiche La memoria principale si comporta come una cache Le caratteristiche di tale cache sono A=A MAX B=4-6KB cache fully associative: una pagina virtuale puo essere mappata su qualsiasi pagina fisica C=Dimensione della Memoria Politica di Rimpiazzamento=LRU Politica di Scrittura=WB (Write-Back) Politica di Scrittura su Miss=WA (Write Allocate) Roberto Giorgi, Universita di Siena, C6L9, Slide 8

Memoria Virtuale: Terminologia Working set : Insieme di pagine che e necessario mantenere in Memoria per ottenere un hit rate accettabile Thrashing : Perdita di prestazioni conseguente al fatto che lo working set e diventato piu grande della Memoria Principale Page Swap : Trasferimento di una pagina nuova in memoria principale e conseguente riscrittura su disco di una pagina vittima Roberto Giorgi, Universita di Siena, C6L9, Slide 9

Memoria Virtuale: schema logico Identificatore di Pagina Virtuale (VPN) n + p = 32 n Indirizzo Virtuale Funzione di Mapping Virtuale Fisico p Offset di pagina Identificatore di Pagina Fisica (PPN) m Indirizzo Fisico m + p Roberto Giorgi, Universita di Siena, C6L9, Slide

Funzione di Mapping Virtuale-Fisico E una tabella! Bit di validita : mi dice se la pagina e in memoria o no Bit di modifica (Dirty): utile all algoritmo di scrittura Bit di uso: utile all algoritmo di rimpiazzamento VPN V D U Identificatore di Pag. Fisica Memoria Fisica PPN DISCO La Tabella delle Pagine sta in Memoria Fisica Quanto e grande questa tabella? Roberto Giorgi, Universita di Siena, C6L9, Slide

Gestione del Page-Fault (Page-Fault Handler) Passi per leggere una locazione della Memoria Principale ) Presento un indirizzo virtuale al sistema di Memoria 2) Accedo alla Tabella delle Pagine per vedere se la pagina e in RAM 3) Se la pagina e in RAM accedo nuovamente alla RAM per prendere il dato 4) Se la pagina non e in RAM lancio un interrupt al processore e chiamo una routine di servizio del Sistema Operativo denominata Page-Fault Handler 5) Il Page-Fault Handler si occupa di fare il page-swap (tramite il DMA) e porta in RAM la pagina richiesta prelevandola da disco 6) Viene ripetuta la lettura: stavolta la pagina si trovera in RAM Anche se avessi una percentuale del % di Hit-Rate in Memoria Principale, la penalty dovuta all uso della memoria virtuale comporterebbe un raddoppio dei tempi di accesso alla memoria Roberto Giorgi, Universita di Siena, C6L9, Slide 2

Tecniche per ridurre la Tabella delle Pagine A) Paginazione della Tabella delle Pagine Parte della tabella finisce in memoria virtuale anziche fisica ( si potra generare un doppio page-fault!) Staranno in RAM solo le porzioni della tabelle piu usate B) Tabella delle Pagine Inversa Si applica una funzione di hashing all indirizzo virtuale cosi che il numero di entry nella tabella delle pagine e al piu pari al numero totale di pagine fisiche Roberto Giorgi, Universita di Siena, C6L9, Slide 3

A) Tabella delle Pagine a Due Livelli PAGE TABLE BASE (REGISTER) K foglie 2 Indirizzo a 32 bit P index P2 index page offest radice 4KB 4 bytes Ho k tabelle di secondo livello ( foglie ) + la tabella radice Non tutte le tabelle foglie saranno pero presenti in memoria In totale la radice occupa 4KB tutte le foglie 4MB Ogni processo del sistema ha pero una proprima tabella completa! 4 bytes Roberto Giorgi, Universita di Siena, C6L9, Slide 4

A) Tabella delle Pagine a Tre Livelli (Alpha) Avendo indirizzi a 64 bit conviene suddividere in tre livelli Nell Alpha uso in realta solo 43 bit per lo spazio virtuale selector Indirizzo VIRTUALE a 64-bit PAGE TABLE BASE + Level Level 2 Level 3 page offest + + L page table L2 page table L3 page table Roberto Giorgi, Universita di Siena, C6L9, Slide 5 PHYSICAL PAGE NUMBER page offest 64-bit PHYSICAL address

A) Metodi di accesso Top-Down e Bottom-Up Top-Down Accesso alla root page table (sempre in memoria) Accesso alla leaf page table Accesso alla pagina fisica Totale 3 accessi alla memoria + eventuale fault o doppio fault In generale ho un numero di accessi alla memoria pari a +Num_Livelli Bottom-Up Accesso diretto all insieme delle leaf page table* (supposte contigue in memoria e allineate su boundary di 4MB per semplificare l accesso) - Se l operazione ha successo: bene (ho solo 2 accessi in memoria) - Altrimenti: si procede con un accesso bottom-up completo Se va tutto bene, faccio 2 accessi fissi indipendentemente dal numero di livelli della tabella delle pagine Roberto Giorgi, Universita di Siena, C6L9, Slide 6 * affinche questo funzioni devo avere un metodo per sapere se ci sono leaf al loro posto oppure no

B) Tabella delle Pagine Inversa () Una entry nella tabella delle pagine per ogni pagina fisica Vantaggi La dimensione scala con la dimensione della memoria fisica anziche con quella della memoria virtuale La dimensione e fissa a prescindere dal numero di processi! Chiamata inversa perche le entry sono indicizzate per PPN anziche per VPN In ogni caso la ricerca avviene fornendo un VPN e ottenendo un PPN Il PPN e dedotto dalla posizione della VPN trovata Tecnica Si applica una funzione di hash al VPN L hash costituisce un indice nella tabella inversa corrispondente al PPN Poiche diversi VPN possono produrre lo stesso hash e necessario un meccanismo per risolvere le collisioni (es. lista concatenata memorizzata all interno della tabella stessa): la nuova entry e aggiunta in fondo alla lista E possibile che si perda un po tempo per percorrere tale lista concatenata Roberto Giorgi, Universita di Siena, C6L9, Slide 7

B) Tabella delle Pagine Inversa (2) V D Virtual Address PPN Virtual Page PPN PPN 2 PPN 3 Virtual Page 6 Virtual Page 52 VPN C O M P A R E Physical Page Number PPN K Numero di elementi della tabella = K L IBM System 38 (AS4) implementa indirizzi a 64-bit 48 bit costituiscono il numero di pagina virtuale e tali elementi hanno un tag di soli 2-bit Roberto Giorgi, Universita di Siena, C6L9, Slide 8 Funziona come una cache fully associative!

Velocizzare il meccanismo di traduzione Indirizzi Virtuali N TLB Funzione di Mapping Virtuale Fisico P M Indirizzi Fisici Uso una piccola cache (TLB=Translation Lookaside Buffer) per avere a portata di mano un po di elementi della Tabella delle Pagine Roberto Giorgi, Universita di Siena, C6L9, Slide 9 Funziona come una cache L per la Tabella delle Pagine (L2)!

TLB: Caratteristiche V D U Permessi VPN PPN tag La TLB e una cache che puo essere fully associative, set-associative o ad accesso diretto La TLB ha tipicamente non piu di 28-256 elementi Il tempo di accesso alla TLB e confrontabile col tempo di accesso alla cache (molto piu basso del tempo di accesso alla memoria principale) Roberto Giorgi, Universita di Siena, C6L9, Slide 2

TLB: Organizzazione Logica VPN V D U Tag Physical Address Memoria Fisica V D U Physical Page or Disk Address DISCO Roberto Giorgi, Universita di Siena, C6L9, Slide 2

TLB: esempio Memoria Virtuale la memoria agisce da cache per il disco La tabella delle pagine mappa indirizzi virtuali in fisici La TLB e una cache delle piu recenti traduzioni Virtual Address Space 2 3 4 5 6 7 8 9 Physical Memory Space Page Table 2 2 3 3 Translation Lookaside Buffer VPN PPN 2 2 5 virtual address page off Roberto Giorgi, Universita di Siena, C6L9, Slide 22

TLB: Schema e interazione con la Cache CPU VA TLB Lookup PA hit Cache miss Main Memory miss hit Translation /2 t C data t C 2 t C VA = Virtual Address PA= Physical Address Roberto Giorgi, Universita di Siena, C6L9, Slide 23

TLB+cache: diagramma di funzionamento V irtua l a dd re ss T L B a cc e ss T L B m is s e xc ep tio n N o T L B h it? Y e s P h ys ic al a dd re ss N o W rite? Y e s T ry to re ad da ta from c ac h e N o W rite a cc es s b it on? Y es C a ch e m iss s ta ll N o C ac h e h it? Y e s W rite p rote c tio n ex c ep tio n W rite d ata into c a ch e, u p da te th e ta g, a nd p ut th e d ata a nd th e ad dre s s in to th e w rite bu ffe r D e liv er d a ta to the C P U Roberto Giorgi, Universita di Siena, C6L9, Slide 24

TLB: Valori tipici Dimensione del blocco: 8 byte Hit-time:.5 - cicli Miss-penalty: -5 cicli Hit-rate: da 99% a 99.99% Dimensione della TLB: 32-24 elementi Roberto Giorgi, Universita di Siena, C6L9, Slide 25