Sincronizzazione

problematica dell'ordinamento temporale di operazioni
(Reindirizzamento da Sincronizzazione (informatica))
Disambiguazione – Se stai cercando l'omonima tecnica nella realizzazione cinematografica, vedi Sincronizzazione (cinema).

In informatica, la sincronizzazione è la problematica dell'ordinamento temporale di operazioni.

Se tutte le operazioni sono eseguite in serie, il problema della sincronizzazione non sussiste. Tuttavia, spesso, per sfruttare meglio il sistema e quindi accelerare le elaborazioni, si ricorre al parallelismo, che consiste nell'iniziare più flussi di esecuzione contemporanei (vedi multithreading). Fintanto che le operazioni eseguite in parallelo usano parti distinte del sistema, non ci sono problemi, ma, quando due componenti hardware o software operano in parallelo sulla stessa parte del sistema, si può avere un conflitto.

Il codice che può essere eseguito solo da un processo alla volta (perché contiene dati condivisi, accesso a risorse, ecc.) si chiama sezione critica.

Alcuni conflitti si possono risolvere semplicemente garantendo la mutua esclusione, cioè serializzando gli accessi, nel senso che il primo che deve operare nella parte comune la blocca, vi opera, e infine la sblocca, e il secondo, quando la trova bloccata, si ferma in attesa che sia sbloccata. La mutua esclusione è il tipo più semplice di sincronizzazione ed è realizzabile mediante monitor, lock o semafori.

Per evitare altri tipi di conflitti sono necessarie forme più complesse di sincronizzazione.

Voci correlate modifica

Altri progetti modifica

Collegamenti esterni modifica

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica