FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014....

28
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 Ingegneria Università degli Studi di Udine Gestione della memoria centrale

Transcript of FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014....

Page 1: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 1

FONDAMENTI DI INFORMATICA

Prof. PIER LUCA MONTESSORO

Facoltà di IngegneriaUniversità degli Studi di Udine

Gestione della memoria centrale

Page 2: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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

Page 3: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 3

Gestione della memoria per sistemimultiprogrammati

• Diverse tecniche:– partizioni fisse– partizioni variabili– segmentazione– paginazione– segmentazione + paginazione

memoriavirtuale

Page 4: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 5: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 6: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 7: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 8: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 9: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 10: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 11: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 12: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 13: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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.

Page 14: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 15: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 16: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 16

SegmentazionePID

indirizzo di base dellasegment table del processo

segment table

segmento offset

indirizzo virtuale

+

indirizzo fisico

+indirizzo del segmento

in memoria fisica

Page 17: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 18: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 19: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 20: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 21: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 22: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 23: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 23

file su disco

memoria RAM

cache memory

capacità

costo, velocità

Gerarchia di memoria

Page 24: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 25: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 26: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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.

Page 27: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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

Page 28: FONDAMENTI DI INFORMATICA - Uniudweb.diegm.uniud.it/pierluca/public_html/teaching/fpac/... · 2014. 11. 24. · Fondamenti di Informatica - 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) 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