Rientranza

In informatica , rientranza è la proprietà per una funzione di essere utilizzabile contemporaneamente da diverse task utente. Reentrance permette di evitare la duplicazione in RAM di un programma utilizzato contemporaneamente da più utenti. Se una funzione di più thread deve accedere a una variabile globale, è sufficiente circondarla di Mutex.

Scrivere codice rientrante era Un compito molto difficile. È stato semplificato con le lingue attuali che consentono:

Il kernel di un sistema operativo ha spesso parti non rientranti per evitare fastidiose complicazioni (incoerenza dei dati critici, perdita di prestazioni). La scrittura dei moduli destinati ad essere eseguiti nello spazio kernel rimane, per questo motivo, delicata.

Rientro e linguaggi di programmazione

Il rientro delle funzioni non è necessariamente garantito da tutti i linguaggi di programmazione . Così, ad esempio, una funzione scritta in Ada sarà sempre rientrante mentre una funzione scritta in C non lo è di default . Il mancato rientro di una funzione è raramente un problema nella programmazione single-task, ma può produrre risultati disastrosi nella programmazione simultanea .

Relazione con "thread-safe"

I due concetti di rientro e thread safe riguardano il modo in cui le funzioni gestiscono le risorse. Il concetto di rientranza ha un impatto sull'interfaccia esterna della funzione, mentre il concetto di thread-safe riguarda la codifica della funzione.

Nota che nessuna di queste proprietà implica l'altra:

Note e riferimenti

Vedi anche