Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1
FONDAMENTI DI INFORMATICA
Prof. PIER LUCA MONTESSORO
Facoltà di IngegneriaUniversità degli Studi di Udine
Gestione della memoria centrale
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 2
Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyrighte dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (iviinclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio,musica e testo) sono di proprietà dell’autore prof. Pier Luca Montessoro, Università degliStudi di Udine.Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca,scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministerodell’Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine dilucro. In tal caso non è richiesta alcuna autorizzazione.Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni susupporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se nonesplicitamente autorizzata per iscritto, a priori, da parte degli autori.L’informazione contenuta in queste slide è ritenuta essere accurata alla data dellapubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata inprogetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senzapreavviso. L’autore non assume alcuna responsabilità per il contenuto di queste slide (iviincluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamentodell’informazione).In ogni caso non può essere dichiarata conformità all’informazione contenuta in questeslide.In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devonomai essere rimossi e devono essere riportati anche in utilizzi parziali.
Nota di Copyright
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 3
Gestione della memoria per sistemimultiprogrammati
• Diverse tecniche:– partizioni fisse– partizioni variabili– segmentazione– paginazione– segmentazione + paginazione
memoriavirtuale
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 4
Obiettivi
• Massimizzare il numero di processi chepossono utilizzare la memoria
• Minimizzare lo spazio di memoriainutilizzato– frammentazione interna: spazio inutilizzato
all’interno di una partizione– frammentazione esterna: partizioni non
utilizzate perché troppo piccole• Semplicità ed efficienza
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 5
Partizioni fisse
• La memoria fisica viene suddivisa inpartizioni predefinite
• Quando un programma viene caricato inuna partizione, gli indirizzi vengonoricalcolati in funzione dell’indirizzo diinizio della partizione
• Problemi:– quante partizioni, quanto grandi?– frammentazione interna ed esterna
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 6
Partizioni fisse
iniziaP1
PXframmen-tazioneinterna:non èpossibilecaricare ilprocessoP6
P1 P1P2
P4P3
P5
PY
frammen-tazioneesterna:non èpossibilecaricare ilprocessoP7
partizionivuote
inizianoP2, P3,P4, P5
P1
P3
P5
terminanoP2 e P4
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 7
Partizioni variabili
• Le partizioni vengono create man manoche i processi richiedono memoria
• Gli indirizzi vengono ricalcolati come nelcaso delle partizioni fisse
• Problemi:– scelta della partizione da utilizzare– frammentazione / ricompattazione
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 8
Partizioni variabili
P1 P1
P2
P1
P2
P3
P1
P3
P2termina
P1
P3
P4
P3
P4
P1termina
P5
la memoria èframmentata,
non èpossibilecaricare il
processo P5
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 9
Memoria virtuale
• 2 aspetti:– estensione della memoria RAM
utilizzabile dalla CPU oltre la dimensionereale della memoria fisica disponibile(mediante page file)
– mapping tra gli indirizzi virtuali di ciascunprocesso in ambiente multitasking: tutti iprocessi usano lo stesso range diindirizzi, ma per ciascuno la memoriarealmente indirizzata è diversa
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 10
Memoria virtuale e indirizzi• Spazio di indirizzamento virtuale:
– determinato dal parallelismo della CPU (es. 32 bit→ indirizzi da 0 a 4G)
• Spazio di indirizzamento reale (in cuivengono tradotti gli indirizzi virtuali):– determinato dall’architettura (numero di fili
dell’address bus) e dalla quantità di RAM• Massima quantità di parole di memoria
utilizzabili contemporaneamente– determinata dal numero di processi attivi e dalla
quantità di RAM
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 11
Memory Management Unit (MMU)
Addressbus
CPUCU ALU
PC
IR R0
R1
R15
Memoria Dispositivi di I/O
00000001000200030004000500060007
...
...
Databus
Controlbus
SP
flags
INDIRIZZI FISICI
INDIRIZZI VIRTUALI
MMU
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 12
Segmenti e pagine
• Segmento– raggruppamento logico di informazioni
(subroutine, area dati, ecc.) di lunghezza variabile
• Page frame– partizione della memoria fisica di dimensione fissa
e uguale per tutti i page frame
• Pagina– partizione della memoria virtuale del processo di
dimensione pari ad un page frame
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 13
indirizzodi basedel segmento
lunghezzadel segmento
indirizzorelativodell'istruzione
istruzione
Segmentazione• Dati e programmi possono essere suddivisi in
segmenti, contenenti parti che possonoessere indirizzate relativamente ad unindirizzo di base.
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 14
Segmentazione• Ogni segmento corrisponde ad una entità
logica ben definita (Esempi: codice, dati,funzioni di libreria, sistema operativo o partedi esso)
• Le istruzioni e/o le variabili contenute nelsegmento sono identificate tramite il loroindirizzo relativo all'indirizzo di base
• NOTA: Per l'esecuzione di un programmanon è necessario che siano presenti inmemoria centrale tutti i segmenti: possonoessere caricati quando serve
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 15
Vantaggi• Possibilità di rilocare i segmenti: gli indirizzi
sono relativi all'indirizzo di base, equest'ultimo viene definito al momento delcaricamento del segmento in memoria
• L'hardware che gestisce la memoria virtualeprovvede alla traduzione degli indirizzi relativiin indirizzi fisici di memoria
• Ad ogni segmento possono essere associatedelle protezioni (es. sola lettura oesecuzione) in base alla sua funzione
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 16
SegmentazionePID
indirizzo di base dellasegment table del processo
segment table
segmento offset
indirizzo virtuale
+
indirizzo fisico
+indirizzo del segmento
in memoria fisica
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 17
Segmentazione vs. partizioni variabili
istruzionese
gmen
to
0000
A022
A136
000 114
segmenttable
CPU:indirizzovirtuale
A022 + 114 istruzione
parti
zion
e
0000
A022
A136
A136
CPU:indirizzo
reale
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 18
Paginazione• Risolve il problema della frammentazione
esterna, esistente nella segmentazione alpari del sistema a partizioni variabili,unificando la dimensione dei blocchi di codice(pagine) che vengono dinamicamente caricatiin memoria (page frame)
• Il programma vede ancora lo spazio diindirizzamento virtuale contiguo all'interno deisegmenti, ma in realtà è immagazzinato inpagine che non sono contigue
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 19
Paginazione
• Pagine e page frame hanno dimensionipari a 2n
– come nella segmentazione, l’indirizzoviene calcolato sommando l’offsetall’indirizzo di base della pagina, maquesto avrà gli ultimi n bit a zero, quindisarà sufficiente accostare i bit
101111000000000 + 001001011----------------------------101111001001011
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 20
PaginazionePID
indirizzo di base dellapage table del processo
page table
pagina offset
indirizzo virtuale
+
m - n bit piùsignificativi
dell’indirizzodella pagina inmemoria fisica
indirizzo fisico
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 21
Paginazione + segmentazione• La paginazione pura può portare a page table
molto grosse• La segmentazione con paginazione permette
di suddividerle in più page table (una pagetable diversa per ogni segmento)
pagina offset
indirizzo virtuale
segmento
determina la pagetable da usare
PID
segmenttable
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 22
A
C
A
C
memoria fisica
NOTA: n = 4 (pagine da 16 byte)
b (base address)
b + 20(0010100)
segmenton. 6
offset(4 bit)
pagina(3 bit)
012
B
0
16
32
48
64
80
96
16
4864
4
B 4
b + 16
Esempio
page table delsegmento
110 0100001segm.(3 bit)
mediante lasegment table hapermesso diindividuare la pagetable da usare
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 23
file su disco
memoria RAM
cache memory
capacità
costo, velocità
Gerarchia di memoria
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 24
Page file• Il meccanismo di traduzione degli indirizzi
permette di far vedere ai programmi uno spaziodi indirizzamento virtuale, per esempio da00000000h a FFFFFFFFh (32 bit)
• La memoria RAM fisicamente presente nelcalcolatore avrà normalmente dimensione moltoinferiore a quella massima indirizzabile dallaCPU
• L'uso del page file permette di sfruttare lamemoria su disco (più lenta, ma più economica)per espandere la memoria RAM centrale
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 25
Page fault• Quando si legge nella page table l'indirizzo
della pagina, questo può essere marcatoinvalido (bit aggiuntivi oltra all’indirizzo dipagina in memoria fisica)
• Ciò significa che la pagina non è presente inmemoria centrale ed è necessario leggerla dalpage file su disco
• Troppi page fault provocano una degradazionedelle prestazioni del sistema, esiste il problemadel bilanciamento tra dimensione del page file ecapacità della memoria centrale
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 26
solo se la paginaè stata modificata
pagina a cui èstato fatto accesso
pagefile
lista delle pagine in memoria
Algoritmo di gestione dei page fault
• Least Recently Used (LRU), altrimentidetto FIFO modificato.
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 27
Attributi di pagina• In corrispondenza di ogni pagina, nella page
table sono contenute diverse informazioni:– bit di presenza (in memoria centrale)– se è presente, l'indirizzo della pagina di memoria,
altrimenti, l'indirizzo all'interno del page file– informazioni di protezione (ereditate dal segmento
di cui attualmente fa parte)– informazioni relative all'utilizzo e alla modifica del
contenuto
Fondamenti di Informatica - Gestione della memoria centrale
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 28
Swapping• I primi sistemi UNIX, per liberare memoria centrale,
trasferivano su memoria secondaria interi processi,e non soltanto parti di essi (pagine). Questo mododi procedere è detto swapping
• I sistemi con paginazione usano ancora loswapping per liberare memoria quando il caricoinizia ad essere eccessivo. In queste condizioni ilsistema è impegnato quasi al 100% a caricare escaricare pagine in memoria (thrashing)
• I processi vengono nuovamente caricati inmemoria quando è possibile riattivarli