10: Allocazione dinamica della memoria Vers. 9.3 – Dicembre 2025
Tutto questo avviene utilizzando la“ PILA DELLE ATTIVAZIONI” nel seguente modo:
- Quando la CPU esegue una istruzione di chiamata a sottoprogramma allora inserisce nela pila delle attivazioni, IN TESTA, l’ indirizzo della cella di memoria contenente l’ istruzione che dovrà essere eseguita al rientro dal sottoprogramma.
- Quando la CPU esegue una istruzione di FINE allora utilizza la pila delle attivazioni per estrarre, DALLA TESTA, l’ indirizzo della cella di memoria in esso contenuto da dove riprendere l’ esecuzione.
Nell’ esempio specificato in precedenza l’ utilizzo della pila delle attivazioni da parte del nostro programma in esecuzione( TASK) sarà il seguente:
SCENARI POSSIBILI
Cosa può accadere ad un programma in esecuzione che oltre all’ uso di sottoprogrammi, impiega l’ allocazione dinamica per la gestione dei dati( anche solo in parte)?
SCENARIO A)
Se un programma non utilizza sottoprogrammi, impiega solamente risorse globali e locali ed occuperà sempre la stessa quantità di memoria, non impiegando affatto il segmento stack che permette di gestire le chiamate a funzioni e procedure tramite una struttura dati chiamata“ pila delle attivazioni”.
Segmento“ HEAP” di sistema Segmento“ STACK” Segmento“ DATI”
Segmento“ CODICE”
Segmento“ Heap” di sistema: area destinata a raccogliere i dati gestiti dinamicamente che come tali verranno allocati e deallocati
Segmento“ STACK”: area destinata a gestire la“ PILA delle ATTIVAZIONI”
Segmento“ DATI”: area contenente variabili e costanti allocate staticamente
Segmento“ CODICE”: area contenente le istruzioni del programma( codice) scritte in linguaggio macchina
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 4