Click here to load reader
View
215
Download
0
Embed Size (px)
Calcolatori Elettronici
La memoria gerarchica
La memoria virtuale
Calcolatori Elettronici - La memoria virtuale (2) - Slide 2 L. Tarantino - a.a. 2011/2012
Come usare la memoria secondaria
oltre che per conservare permanentemente dati e programmi
Idea
Tenere parte del codice in mem. princ. e il resto in mem. secondaria
Trattare la mem. principale come una cache per la mem. secondaria
Vantaggi
Molti programmi contemporaneamente in esecuzione anche se la
somma delle quantit di memoria che ognuno di essi richiede eccede
le dimensioni della memoria principale
un singolo programma pu eccedere le dimensioni della memoria
principale (tanto carico solo porzioni di esso)
Meccanismi base
memoria principale e memoria secondaria vengono scomposti in
gruppi di parole detti pagine
se non trovo una pagina in memoria principale ho una mancanza di
pagina (page fault) e cercher la pagina in memoria secondaria
Calcolatori Elettronici - La memoria virtuale (2) - Slide 3 L. Tarantino - a.a. 2011/2012
Memoria virtuale - problematiche di base
Posizionamento della pagina
sempre completamente associativa (gestita via software)
Individuazione della pagina
gestita via software
Tecnica di sostituzione
LRU o sue approssimazioni
Strategia di scrittura
sempre write-back
minimizzare i page fault perch la penalizzazione altissima!!
Calcolatori Elettronici - La memoria virtuale (2) - Slide 4 L. Tarantino - a.a. 2011/2012
Un passo indietro
Il programma eseguibile prodotto dal linker che integra librerie e
moduli oggetto prodotti dallassemblatore
Il linker lavora come se avesse a sua disposizione lintera memoria
virtuale
Esempio
se ho indirizzi da 32 bit posso indirizzare fino a 232 byte
lo spazio di indirizzamento virtuale va considerato scomposto in
pagine virtuali
durante lesecuzione alcune pagine virtuali si trovano nella memoria
principale (caricate in pagine fisiche) le altre si trovano nella memoria
secondaria
spazio di indirizzamento virtuale
C:/Users/Laura/Documents/didattica - transito/CE - corso 0910/3 - linguaggio macchina/lezioni (ppt)/14-MIPS8-LM-new.pptx
Calcolatori Elettronici - La memoria virtuale (2) - Slide 5 L. Tarantino - a.a. 2011/2012
Corrispondenze tra pagine virtuali e fisiche
DIM_PAG_VIRT = DIM_PAG_FIS
in realt le pagine virtuali risiedono sempre tutte in mem.secondaria
le pagine in mem. principale sono un sottoinsieme di quelle in
memoria secondaria
Memoria
secondaria Memoria virtuale
di un programma
Memoria
principale
pagine fisiche
Calcolatori Elettronici - La memoria virtuale (2) - Slide 6 L. Tarantino - a.a. 2011/2012
Trattamento dellindirizzo
.. prosegue il parallelismo tra cache e memoria virtuale
Se la memoria principale divisa in blocchi lindirizzo viene diviso in
due porzioni:
La memoria virtuale divisa in pagine, quindi lindirizzo viene diviso
in due porzioni:
indirizzo del bloccoMP spiazzamento
lg2 DIM_MEM_PRINC
lg2 NBLKMP lg2 DIM_BLK
indirizzo pagina virtuale spiazzamento nella pagina
lg2 DIM_MEM_VIRT
lg2 NPagVirt lg2 DIM_PAG
Calcolatori Elettronici - La memoria virtuale (2) - Slide 7 L. Tarantino - a.a. 2011/2012
Indirizzo virtuale e indirizzo fisico (1)
Quando si accede in memoria?
durante le fasi di fetch o di accesso ai dati (lettura/scrittura)
A quale parola si accede?
a quella il cui indirizzo nel PC (se fetch) o in AluOut (se accesso
ai dati)
lindirizzo di interesse generato dalla CPU
Come viene generato lindirizzo?
in base alla evoluzione del processo, facendo riferimento allo
spazio di indirizzamento virtuale (lunico conosciuto dal
programma)
la CPU genera indirizzi virtuali
Calcolatori Elettronici - La memoria virtuale (2) - Slide 8 L. Tarantino - a.a. 2011/2012
Indirizzo virtuale e indirizzo fisico (2)
la CPU genera indirizzi virtuali la mem.princ. vuole indirizzi fisici
necessario un processo di traduzione
???
indirizzo pagina virtuale spiazzamento nella pagina
lg2 NPagVirt lg2 DIM_PAG
indirizzo
virtuale
indirizzo pagina fisica spiazzamento nella pagina
lg2 NPagFis lg2 DIM_PAG
indirizzo
fisico
Osservazione
ind_pag_virt e
ind_pag_fis in
genere hanno
dimensioni diverse
Calcolatori Elettronici - La memoria virtuale (2) - Slide 9 L. Tarantino - a.a. 2011/2012
Posizionamento della pagina
Politica completamente associativa
se ci sono pagine fisiche libere si carica la pagina virtuale dove c
posto
se non ci sono pagine libere entrano in gioco politiche di sostituzione
limplementazione software permette di usare algoritmi sofisticati
e strutture dati complesse per tenere traccia delleffettivo utilizzo
delle pagine
i miglioramenti ottenuti per il miss rate compensano il costo di tali
algoritmi
Calcolatori Elettronici - La memoria virtuale (2) - Slide 10 L. Tarantino - a.a. 2011/2012
Individuazione della pagina (1)
La pagina cercata pu essere ovunque
Per ricordarci la collocazione delle pagine usiamo una tabella delle
pagine
indirizzo di pagina fisica
.
.
.
.
.
.
una riga per ogni
pagina virtuale . . .
pagina caricata
in mem. principale
1
0
pagina NON caricata
in mem. principale
Valid.
Calcolatori Elettronici - La memoria virtuale (2) - Slide 11 L. Tarantino - a.a. 2011/2012
Individuazione della pagina (2)
indirizzo di pagina fisica
.
.
.
.
.
.
Valid.
indirizzo pagina virtuale spiazzamento nella pagina
lg2 NPagVirt lg2 DIM_PAG
indirizzo
virtuale
indirizzo pagina fisica spiazzamento nella pagina
lg2 NPagFis lg2 DIM_PAG
indirizzo
fisico
hit/miss
Calcolatori Elettronici - La memoria virtuale (2) - Slide 12 L. Tarantino - a.a. 2011/2012
La tabella delle pagine (1)
ogni processo in esecuzione ne possiede una distinta
le tabelle delle pagine risiedono in memoria
bisogna individuare quella del processo attivo (il processo servito
dalla CPU)
il registro della tabella delle pagine contiene lindirizzo in memoria
della tabella delle pagine del processo attivo
Altre informazioni nella tabella (associate alla pagina)
bit di uso (per la strategia di sostituzione LRU)
bit di modifica (per la strategia di scrittura write back)
Calcolatori Elettronici - La memoria virtuale (2) - Slide 13 L. Tarantino - a.a. 2011/2012
Esempio
Determinare loccupazione di memoria della tabella se
indirizzo virtuale 32 bit
dim_pagina 4 KB
dim_riga 4 byte
DIM_TABELLA = NRIGHE * DIM_RIGA
NRIGHE = NPAG_VIRT = DIM_MEM_VIRT / DIM_PAGINA
NRIGHE = 232 Byte / 4 KByte = 232 / 212 = 220
DIM_TABELLA = 220 * 4 byte = 4 MB
Calcolatori Elettronici - La memoria virtuale (2) - Slide 14 L. Tarantino - a.a. 2011/2012
Esercizio
Determinare loccupazione di memoria della tabella se
indirizzo virtuale 32 bit
dim_pagina 16 KB
dim_riga 4 byte
DIM_TABELLA = NRIGHE * DIM_RIGA
NRIGHE = NPAG_VIRT = DIM_MEM_VIRT / DIM_PAGINA
NRIGHE = 232 Byte / 16 KByte = 232 / 214 = 218
DIM_TABELLA = 218 * 4 byte = 1 MB
Calcolatori Elettronici - La memoria virtuale (2) - Slide 15 L. Tarantino - a.a. 2011/2012
La tabella delle pagine (2)
lo spazio occupato dalla tabella delle pagine elevato!
Tecniche per ridurre loccupazione di memoria della tabella
consentire alla tabella di crescere via via che il processo richiede
pi spazio (pi pagine), aggiungendo nuove righe
progettare strutture con una occupazione di memoria legata al
numero di pagine in mem. princ. (minore del numero di pagine
virtuali) TABELLA DELLE PAGINE INVERTITA
paginare la tabella delle pagine
Calcolatori Elettronici - La memoria virtuale (2) - Slide 16 L. Tarantino - a.a. 2011/2012
Gestione dei page fault
.. quando il bit il validit vale 0
lesecuzione dellistruzione viene interrotta per caricare la pagina
dalla memoria secondaria
dove collocata nel disco?
deve esistere una seconda tabella che, per ogni pagina virtuale, d
lindirizzo della pagina su disco
Osservazione
il sistema operativo crea lo spazio su disco per tutte le pagine di un
processo allatto della creazione del processo stesso
quando il caricamento della pagina completato si pu riprendere
lesecuzione dellistruzione. Due possibilit:
listruzione viene rieseguita da capo (facile da implementare nella
processore MIPS, lo stato non cambiato, si erano effettuate solo
letture dal banco e il calcolo dellindirizzo)
listruzione