Programmazione di calcolatori
Download
1 / 15

Programmazione di Calcolatori - PowerPoint PPT Presentation


  • 123 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Programmazione di Calcolatori' - arwen


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Programmazione di calcolatori

Programmazione di Calcolatori

Lezione VIII

Il modello di memoria

Programmazione di Calcolatori: Il modello di memoria


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

● ogni locazione memorizza una sequenza di 8 bit

2840

2841

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

10100000

2842

X

2843

2844

2855

Programmazione di Calcolatori: Il modello di memoria


Variabili
Variabili

● una variabile è un insieme di locazioni contigue in memoria

x

2834

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

2835

x

2836

2837

2838

● l’indirizzo di una variabile è l’indirizzo della prima di tali locazioni

x

2839

A

3

x

2840

x

2841

● ogni variabile memorizza un valore

x

2842

● il tipo della variabile è il tipo del valore memorizzato

2843

x

2844

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

2855

intero

Programmazione di Calcolatori: Il modello di memoria

4


Stato della memoria
Stato della memoria

2834

2834

2835

2835

2836

2836

2837

2837

2838

2838

2839

2839

2840

2840

  • Molto informalmente:

è una foto del contenuto della memoria ad un certo istante

  • Molto meno informalmente:

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

x

x

Stato1 = Stato2?

x

x

NO

x

x

x

x

Stato1

Stato2

Programmazione di Calcolatori: Il modello di memoria


Stato della memoria1
Stato della memoria

Stato1 = Stato2?

x

x

x

x

A

A

2

3

A

A

2

3

x

x

x

x

Stato1 = Stato2?

x

x

x

x

SI

B

B

2

2

C

B

2

2

x

x

x

x

Stato1

Stato1

Stato2

Stato2

NO

Programmazione di Calcolatori: Il modello di memoria


Stato della memoria2
Stato della memoria

Stato1 = Stato2?

Stato1 = Stato2?

x

x

x

x

A

A

2

2

A

A

2

2

x

x

x

x

x

x

x

x

B

B

2

2

B

B

2.0

3

x

x

x

x

Stato1

Stato1

Stato2

Stato2

NO

NO

Programmazione di Calcolatori: Il modello di memoria


Stato della memoria3
Stato della memoria

x

Stato1 = Stato2?

x

x

A

2

A

2

x

x

x

NO

x

x

B

2

B

2

x

x

Stato1

Stato2

Programmazione di Calcolatori: Il modello di memoria


Definizione di una variabile
Definizione di una variabile

  • Definizione di una variabile:

tipo_variabile nome_variabile

  • Modifiche allo stato della memoria:

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

si associa il nome nome_variabile alle locazioni riservate;

si associa alla variabile il tipo tipo_variabile.

Programmazione di Calcolatori: Il modello di memoria


Definizione di una variabile1
Definizione di una variabile

x

x

x

x

  • Esempio:

x

2834

2835

x

2836

2837

int y;

2838

2839

2840

y

2841

2842

2843

x

2844

2855

intero

Programmazione di Calcolatori: Il modello di memoria


Rilascio di memoria allocata
Rilascio di memoria allocata

2834

2835

2836

x

2837

A

x

2838

x

2839

x

2840

2841

2842

2843

2844

2855

  • Rilascio della memoria:

avviene rendendo di nuovo disponibili le celle allocate per la variabile

  • Esempio:

{

{

int A;

….

}

}

Programmazione di Calcolatori: Il modello di memoria


Assegnamento di valori a variabili
Assegnamento di valori a variabili

  • Assegnamento:

nome_variabile = espressione

  • Modifiche allo stato della memoria:

si valuta il valore di espressione;

si sostituisce tale valore al valore memorizzato da nome_variabile.

Attenzione:

il tipo di nome_variabile e il tipo di espressione “devono” essere gli stessi

Programmazione di Calcolatori: Il modello di memoria


Accesso alle variabili tramite nome
Accesso alle variabili tramite nome

x

2834

x

2835

2836

2837

x

2838

C

3

x

2839

x

2840

x

2841

x

2842

A

x

2843

x

2844

x

2855

  • Esempio:

B

8

-1

x

x

-4

3

B = A+C;

-4

Programmazione di Calcolatori: Il modello di memoria


Accesso all indirizzo di una variabile
Accesso all’indirizzo di una variabile

2834

2835

2836

2837

2838

x

2839

3

A

x

2840

x

2841

x

2842

2843

2844

2855

  • L’operatore &:

&nome_variabile

  • Valore restituito:

B

x

l’indirizzo di nome_variabile;

2839

x

B = &A;

2839

puntatore

Programmazione di Calcolatori: Il modello di memoria


Accesso alle variabili tramite indirizzo
Accesso alle variabili tramite indirizzo

2834

2835

2836

2837

2838

x

2839

3

A

x

2840

x

2841

x

2842

2843

2844

2855

  • L’operatore *:

*nome_puntatore

2839

  • Effetto:

x

B

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

x

4

  • Esempio:

3

A

A=*B+1;

Programmazione di Calcolatori: Il modello di memoria


Accesso alle variabili tramite indirizzo1
Accesso alle variabili tramite indirizzo

x

2834

B

2837

x

2835

2836

x

2837

3

C

x

2838

x

2839

x

2840

2841

x

2842

A

x

2843

x

2844

x

2855

  • Esempio:

C

4

3

7

*B = A+C;

4

Programmazione di Calcolatori: Il modello di memoria


ad