1 / 15

Programmazione di Calcolatori

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.

arwen
Download Presentation

Programmazione di Calcolatori

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

More Related