Programmazione di Calcolatori

15
G. Amodeo, C. Gaibisso Programmazione di Programmazione di Calcolatori Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1

description

Programmazione di Calcolatori. Lezione VIII Il modello di memoria. Il modello di memoria. In uso. x. Disponibile. 2834. ●un insieme di locazioni. 2835. ●ogni locazione è univocamente identificata da un valore numerico detto indirizzo. 2836. 2837. 2838. 2839. - PowerPoint PPT Presentation

Transcript of Programmazione di Calcolatori

Page 1: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso Programmazione di Programmazione di

CalcolatoriCalcolatori

Lezione VIIIIl modello di memoria

Programmazione di Calcolatori: Il modello di memoria 1

Page 2: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso

Il modello di memoriaIl modello di memoria

Programmazione di Calcolatori: Il modello di memoria 2

● ogni locazione memorizza una sequenza di 8 bit

● ogni locazione è univocamente identificata da un valore numerico detto indirizzo

● ad ogni locazione è associato un flag che indica se la locazione è correntemente in uso o è invece disponibile

283428352836283728382839284028412842284328442855

10100000 X

● un insieme di locazioni

In usoDisponibile

x

Page 3: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso VariabiliVariabili

Programmazione di Calcolatori: Il modello di memoria 3

● una variabile è un insieme di locazioni contigue in memoria

● il numero delle locazioni allocate per una variabile è funzione del tipo della variabile

● ogni variabile è identificata da una stringa alfa-numerica detta nome della variabile

● ogni variabile memorizza un valore

● il tipo della variabile è il tipo del valore memorizzato

A● l’indirizzo di una variabile è

l’indirizzo della prima di tali locazioni

283428352836283728382839284028412842284328442855

x

x

x

xxxx

3

intero

4

Page 4: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso Stato della memoriaStato della memoria

Programmazione di Calcolatori: Il modello di memoria 4

• Molto informalmente:è una foto del contenuto della memoria ad un certo istante

è definito dall’insieme delle locazioni di memoria in uso, dall’insieme delle variabili, dal valore e dalle locazioni ad esse assegnate

• Molto meno informalmente:

2834283528362837283828392840

2834283528362837283828392840

x

x

x

x

xx

xx

Stato1 Stato2

Stato1 = Stato2?

NO

Page 5: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso Stato della memoriaStato della memoria

Programmazione di Calcolatori: Il modello di memoria 5

xx

xx

xx

xx

3A

B

3A

2B2

Stato1 Stato2

Stato1 = Stato2?

xx

xx

xx

xx

2A

B

2A

2C2

Stato1 Stato2

Stato1 = Stato2?

SI

NO

Page 6: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso Stato della memoriaStato della memoria

Programmazione di Calcolatori: Il modello di memoria 6

xx

xx

xx

xx

2A

B

2A

3B2

Stato1 Stato2

Stato1 = Stato2?

NO

xx

xx

xx

xx

2A

B

2A

2.0B2

Stato1 Stato2

Stato1 = Stato2?

NO

Page 7: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso Stato della memoriaStato della memoria

Programmazione di Calcolatori: Il modello di memoria 7

xx

xx

xx

xx

2A

B

2A

2B2

Stato1 Stato2

Stato1 = Stato2?

x

x

NO

Page 8: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso Definizione di una variabileDefinizione di una variabile

Programmazione di Calcolatori: Il modello di memoria 8

• Definizione di una variabile:

• Modifiche allo stato della memoria:tipo_variabile nome_variabile

1. si riserva il numero di locazioni contigue in memoria necessario a memorizzare un valore di tipo tipo_variabile;

2. si associa il nome nome_variabile alle locazioni riservate;

3. si associa alla variabile il tipo tipo_variabile.

Page 9: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso Definizione di una variabileDefinizione di una variabile

Programmazione di Calcolatori: Il modello di memoria 9

int y;

283428352836283728382839284028412842284328442855

x

x

x

xxxx

y

intero

• Esempio:

Page 10: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso Rilascio di memoria allocataRilascio di memoria allocata

Programmazione di Calcolatori: Il modello di memoria 10

avviene rendendo di nuovo disponibili le celle allocate per la variabile

{{int A;….}

}

• Esempio: 283428352836283728382839284028412842284328442855

xxxx

A

• Rilascio della memoria:

Page 11: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso Assegnamento di valori a Assegnamento di valori a

variabilivariabili

Programmazione di Calcolatori: Il modello di memoria 11

• Assegnamento:

nome_variabile = espressione

Attenzione:il tipo di nome_variabile e il tipo di espressione “devono” essere gli

stessi

• Modifiche allo stato della memoria:

1. si valuta il valore di espressione;2. si sostituisce tale valore al valore

memorizzato da nome_variabile.

Page 12: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso Accesso alle variabili tramite Accesso alle variabili tramite

nomenome

Programmazione di Calcolatori: Il modello di memoria 12

• Esempio:

B = A+C;-4 3

283428352836283728382839284028412842284328442855

x

Cxxxx

x

A3

xxxx

xxB8

-4

-1

Page 13: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso Accesso all’indirizzo di una Accesso all’indirizzo di una

variabilevariabile

Programmazione di Calcolatori: Il modello di memoria 13

• L’operatore &:&nome_variabile

• Valore restituito:l’indirizzo di nome_variabile;

B = &A;2839

283428352836283728382839284028412842284328442855

A3xxxx

Bxx2839

puntatore

Page 14: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso Accesso alle variabili tramite Accesso alle variabili tramite

indirizzoindirizzo

Programmazione di Calcolatori: Il modello di memoria 14

• L’operatore *:

A=*B+1;

3

*nome_puntatore • Effetto:

equivale al nome della variabile il cui indirizzo è in nome_puntatore;

283428352836283728382839284028412842284328442855

A3xxxx

Bxx2839

4

A

• Esempio:

Page 15: Programmazione di Calcolatori

G. Amodeo,C. Gaibisso Accesso alle variabili tramite Accesso alle variabili tramite

indirizzoindirizzo

Programmazione di Calcolatori: Il modello di memoria 15

• Esempio:283428352836283728382839284028412842284328442855

x

Cxxxx

Bx2837

A

3xxxx

4

*B = A+C;C 4 3 7