4° Anno TEORIA 2. Allocazione dinamica della memoria | Page 4

10 : Allocazione dinamica della memoria Vers . 8.3 – Ottobre 2023
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