3° Anno TEORIA 7.1 - Slide Procedure e Funzioni | Page 14

Quando un programma è in esecuzione , tutte le sue parti ( sottoprogrammi ) vengono caricate in memoria centrale in un ’ apposita zona di memoria nella RAM per poi essere attivate al momento della chiamata . Una volta terminata l ’ esecuzione del programma questa zona di memoria verrà rilasciata liberando la memoria precedentemente occupata ( allocazione dinamica del codice da parte del sistema operativo ).
Memoria di massa
Quando la CPU incontra una istruzione di chiamata a sottoprogramma ( nel nostro esempio successivo indicata con SP1 , SP2 , SP3 ossia SP < n >) sospende l ’ esecuzione del programma corrente e passa ad eseguire le istruzioni contenute nel sottoprogramma chiamato . Terminata l ’ esecuzione , la CPU quando arriva all ’ istruzione di FINE riprende l ’ esecuzione del programma ripartendo dall ’ istruzione successiva a quella di chiamata .

Esecuzione di un SOTTOPROGRAMMA : Funzionamento

Quando un programma è in esecuzione , tutte le sue parti ( sottoprogrammi ) vengono caricate in memoria centrale in un ’ apposita zona di memoria nella RAM per poi essere attivate al momento della chiamata . Una volta terminata l ’ esecuzione del programma questa zona di memoria verrà rilasciata liberando la memoria precedentemente occupata ( allocazione dinamica del codice da parte del sistema operativo ).

Memoria di massa

EVENTI Doppio click su . EXE oppure " Esegui "
Segmento HEAP

R

Segmento DATI Segmento CODICE
CONSEGUENZE Il sistema operativo ( programma LOADER )
Segmento STACK
Segmento DATI a ) Copia i segmenti DATI e CODICE nella RAM Segmento CODICE

. EXE b ) Aggiunge i segmenti STACK e HEAP

Processo o TASK

A M

Quando la CPU incontra una istruzione di chiamata a sottoprogramma ( nel nostro esempio successivo indicata con SP1 , SP2 , SP3 ossia SP < n >) sospende l ’ esecuzione del programma corrente e passa ad eseguire le istruzioni contenute nel sottoprogramma chiamato . Terminata l ’ esecuzione , la CPU quando arriva all ’ istruzione di FINE riprende l ’ esecuzione del programma ripartendo dall ’ istruzione successiva a quella di chiamata .