Race condition: differenze tra le versioni
→Race Condition in elettronica:
Corretti typo |
Nessun oggetto della modifica |
||
Riga 1: | Riga 1: | ||
{{S|basi di dati}} |
{{S|basi di dati}} |
||
La '''situazione di corsa''' o più semplicemente '''corsa''' (in inglese, '''race condition''') è un fenomeno che si presenta nei [[Concorrenza (informatica)|sistemi concorrenti]] e avviene |
La '''situazione di corsa''', o più semplicemente '''corsa''' (in inglese, '''race condition'''), è un fenomeno che si presenta nei [[Concorrenza (informatica)|sistemi concorrenti]] e avviene quando, in un sistema basato su processi multipli, il risultato finale dell'esecuzione dei processi dipende dalla temporizzazione o dalla sequenza con cui vengono eseguiti. |
||
quando, in un sistema basato su processi multipli, il risultato finale dell'esecuzione dei processi dipende dalla temporizzazione o dalla sequenza con cui vengono eseguiti. |
|||
Spesso, una situazione di corsa è un effetto indesiderato e produce un malfunzionamento. |
Spesso, una situazione di corsa è un effetto indesiderato e produce un malfunzionamento. |
||
Riga 9: | Riga 8: | ||
==Race Condition in elettronica== |
==Race Condition in elettronica== |
||
[[File:Race condition.svg|frame|]] |
[[File:Race condition.svg|frame|]] |
||
In elettronica, esistono alcune |
In elettronica, esistono alcune interessanti applicazioni delle Race Condition. Ad esempio, il circuito logico mostrato in figura, è spesso utilizzato per ottenere un impulso, corrispondente al fronte di salita del segnale originale A. Il ritardo di commutazione, introdotto dalla porta logica invertente, crea un ritardo nella determinazione del corretto stato logico della [[porta AND]]. Così facendo, ogni qual volta ci sarà un fronte di salita sul segnale A, in uscita dal circuito si otterrà un impulso di durata Δt<sub>1</sub>. |
||
La competizione tra il segnale originale A ed il segnale ritardato Ā, genera una Race Condition per determinare lo stato finale del circuito logico. |
La competizione tra il segnale originale A ed il segnale ritardato Ā, genera una Race Condition per determinare lo stato finale del circuito logico. |
||
==Race condition in informatica== |
==Race condition in informatica== |
||
Per evitare il verificarsi di queste condizioni in cui sono coinvolti [[memoria]], [[file]] o risorse condivise, sono stati studiati diversi [[algoritmo|algoritmi]] che |
Per evitare il verificarsi di queste condizioni in cui sono coinvolti [[memoria]], [[file]], o risorse condivise, sono stati studiati diversi [[algoritmo|algoritmi]] che prevedono la ''[[mutua esclusione]]'', ovvero, assicurarsi che, se la risorsa condivisa è occupata da un processo, durante quell'arco di tempo nessun altro processo potrà accedervi. |
||
Se più processi hanno la possibilità di accedere ad una risorsa in modalità di scrittura, è importante prevedere l'utilizzo di questi algoritmi. Se invece questi processi condividono la risorsa unicamente in modalità lettura non ci saranno race condition perché i processi non potranno influenzare lo stato della risorsa. |
Se più processi hanno la possibilità di accedere ad una risorsa in modalità di scrittura, è importante prevedere l'utilizzo di questi algoritmi. Se invece questi processi condividono la risorsa unicamente in modalità lettura non ci saranno race condition perché i processi non potranno influenzare lo stato della risorsa. |
Versione delle 19:59, 5 nov 2016
La situazione di corsa, o più semplicemente corsa (in inglese, race condition), è un fenomeno che si presenta nei sistemi concorrenti e avviene quando, in un sistema basato su processi multipli, il risultato finale dell'esecuzione dei processi dipende dalla temporizzazione o dalla sequenza con cui vengono eseguiti.
Spesso, una situazione di corsa è un effetto indesiderato e produce un malfunzionamento. In questo caso, essa è denominata corsa critica per il sistema.
Race Condition in elettronica
In elettronica, esistono alcune interessanti applicazioni delle Race Condition. Ad esempio, il circuito logico mostrato in figura, è spesso utilizzato per ottenere un impulso, corrispondente al fronte di salita del segnale originale A. Il ritardo di commutazione, introdotto dalla porta logica invertente, crea un ritardo nella determinazione del corretto stato logico della porta AND. Così facendo, ogni qual volta ci sarà un fronte di salita sul segnale A, in uscita dal circuito si otterrà un impulso di durata Δt1.
La competizione tra il segnale originale A ed il segnale ritardato Ā, genera una Race Condition per determinare lo stato finale del circuito logico.
Race condition in informatica
Per evitare il verificarsi di queste condizioni in cui sono coinvolti memoria, file, o risorse condivise, sono stati studiati diversi algoritmi che prevedono la mutua esclusione, ovvero, assicurarsi che, se la risorsa condivisa è occupata da un processo, durante quell'arco di tempo nessun altro processo potrà accedervi.
Se più processi hanno la possibilità di accedere ad una risorsa in modalità di scrittura, è importante prevedere l'utilizzo di questi algoritmi. Se invece questi processi condividono la risorsa unicamente in modalità lettura non ci saranno race condition perché i processi non potranno influenzare lo stato della risorsa.