4° Anno TEORIA 2. Allocazione dinamica della memoria

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