Uso della memoria da parte di un programma, nozione di stack e Heap
Quando un programma viene avviato gli viene messa a disposizione della memoria e questa memoria ha diversi utilizzi:
- CODE: è un area destinata all' istruzioni eseguibili del programma
- VARIABILI GLOBALI: è un area destinata a contenere variabili globali che servono all'esecuzione di tutto il programma ovvero variabili non definite all'interno delle funzioni ma al di fuori
- HEAP: area destinata alla collocazione di oggetti non hanno una dimensione predefinita ma sono destinati a crescere dinamicamente. In questa area ci andranno tutti i reference type.
- STACK: per allocazione di oggetti che hanno definizione predefinita e per tutte le informazioni relative alle chiamate. In questa area sono destinati i value type.
Lo stack è suddiviso in stack frames , ciascuna di queste aree di memoria è destinata ad ogni singola funzione. Negli stack frames ci sono varie informazioni e le più importanti sono:
- Variabili locali (value type) definite all’interno della funzione;
- Parametri della funzione;
- Indirizzo di ritorno.
Commenti
Posta un commento