4° Anno TEORIA 2. Allocazione dinamica della memoria

10: Allocazione dinamica della memoria Vers. 9.1 – Ottobre 2025
10. ALLOCAZIONE DINAMICA DELLA MEMORIA
Per allocare lo spazio in memoria per le risorse locali e / o globali di un programma, si possono scegliere sostanzialmente due strategie differenti:
a) ALLOCAZIONE STATICA della MEMORIA: la memoria necessaria per il dato viene allocata prima dell’ esecuzione del programma a tempo di compilazione( compile-time);
b) ALLOCAZIONE DINAMICA della MEMORIA: consente, durante l’ esecuzione di un programma( quindi a tempo di esecuzione ossia a run-time), di eseguire le istruzioni per allocare lo spazio in memoria necessario al dato e di deallocare tale spazio al termine della sua esecuzione, in modo da renderlo disponibile ad altri usi / programmi.
STRATEGIE DI ALLOCAZIONE A CONFRONTO Aspetti valutati Allocazione statica Allocazione dinamica
Occupazione di memoria dei dati
Tempo di esecuzione del programma
Tempo di esistenza dei dati( visibilità o scope)
L’ occupazione di memoria dei dati resta costante( ossia inalterabile) per tutta l’ esecuzione del programma e non può essere in alcun modo modificata.
Al tempo di esecuzione del programma determinato dalle sue istruzioni non viene aggiunto il tempo di allocazione dei dati in quanto l’ allocazione viene fatta una volta sola prima dell’ esecuzione del programma stesso. Quindi l’ allocazione statica dei dati non appesantisce in alcun modo il tempo di esecuzione di un programma.
I dati sono visibili( quindi esistono e sono utilizzabili) dall’ inizio alla fine del programma in quanto fin dall’ inizio dell’ esecuzione del programma stesso ad ognuno di essi viene associata una zona di memoria di lunghezza costante che verrà rilasciata solo quando il programma terminerà.
L’ occupazione di memoria dei dati è variabile( ossia alterabile) nel corso dell’ esecuzione del programma in quanto verranno allocati solo quando servono e della dimensione( modificabile) che verrà ritenuta necessaria. Al tempo di esecuzione del programma determinato dalle sue istruzioni deve essere aggiunto il tempo di allocazione( e successiva deallocazione) dei dati in quanto essa avverrà nel corso dell’ esecuzione del programma stesso. Quindi l’ allocazione dinamica dei dati appesantisce il tempo di esecuzione di un programma.
I dati sono visibili( quindi esistono e sono utilizzabili) tra la loro allocazione e la successiva deallocazione che avvengono durante l’ esecuzione del programma( ossia a run-time) con particolari chiamate a sottoprogrammi.
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 1