g. amodeo, c. gaibisso programmazione di calcolatori lezione viii il modello di memoria...
TRANSCRIPT
![Page 1: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/1.jpg)
G. Amodeo,C. Gaibisso Programmazione di Programmazione di
CalcolatoriCalcolatori
Lezione VIIIIl modello di memoria
Programmazione di Calcolatori: Il modello di memoria 1
![Page 2: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/2.jpg)
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
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2855
10100000 X
● un insieme di locazioni
In uso
Disponibile
x
![Page 3: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/3.jpg)
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
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2855
x
x
x
xxxx
3
intero
4
![Page 4: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/4.jpg)
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:
2834
2835
2836
2837
2838
2839
2840
2834
2835
2836
2837
2838
2839
2840
x
x
x
x
xx
xx
Stato1 Stato2
Stato1 = Stato2?
NO
![Page 5: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/5.jpg)
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: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/6.jpg)
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: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/7.jpg)
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: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/8.jpg)
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: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/9.jpg)
G. Amodeo,C. Gaibisso
Definizione di una variabileDefinizione di una variabile
Programmazione di Calcolatori: Il modello di memoria 9
int y;
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2855
x
x
x
xxxx
y
intero
• Esempio:
![Page 10: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/10.jpg)
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: 2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2855
xxxx
A
• Rilascio della memoria:
![Page 11: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/11.jpg)
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: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/12.jpg)
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
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2855
x
Cxxxx
x
A
3xxxx
xxB8
-4
-1
![Page 13: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/13.jpg)
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
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2855
A3xxxx
Bxx2839
puntatore
![Page 14: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/14.jpg)
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;
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2855
A3xxxx
Bxx2839
4
A
• Esempio:
![Page 15: G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1](https://reader035.vdocuments.pub/reader035/viewer/2022081403/5542eb65497959361e8d12a9/html5/thumbnails/15.jpg)
G. Amodeo,C. Gaibisso Accesso alle variabili tramite Accesso alle variabili tramite
indirizzoindirizzo
Programmazione di Calcolatori: Il modello di memoria 15
• Esempio:2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2855
x
Cxxxx
Bx2837
A
3
xxxx
4
*B = A+C;C 4 3 7