Una procedura è detta rientrante se può essere richiamata da più task senza generare conflitti.
Tipicamente i problemi possono nascere se la procedura, durante la sua
esecuzione, modifica delle variabili globali o statiche, poiché ne
esiste un'unica copia in memoria.
Per realizzare procedure rientranti è necessario applicare le seguenti tecniche:
- far uso, quando possibile, di variabili allocate nello stack (parametri e variabili locali) al posto delle variabili globali o statiche;
- proteggere le variabili statiche e globali all'interno di sezioni critiche, in modo da impedirne l'accesso contemporaneo da parte di task differenti.
L'implementazione
di alcune procedure (richiamabili contemporaneamente da più task) può
richiedere l'uso di variabili globali o statiche con un valore distinto
per ogni task chiamante; alcuni sistemi operativi (come ad esempio
VxWorks) forniscono la possibilità di aggiungere delle variabili al
contesto del task; ogni volta che si verifica un cambio di contesto, il
valore della variabile è aggiornato con il valore memorizzato nel
contesto corrente.
Vota questo articolo per primo
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5