title: Controllo della concorrenza
text: # Controllo della concorrenza
  
  In informatica il controllo della concorrenza si occupa dell'analisi e della risoluzione dei problemi legata alla gestione della concorrenza.
  
  La concorrenza in ambito informatico si riferisce al problema di gestire e sincronizzare la gestione di più risorse che diversi processi devono utilizzare contemporaneamente. Se l'allocazione delle risorse viene eseguita senza nessuna strategia particolare da parte dei processi questo può portare a situazioni di stallo come i deadlock o la starvation. Per evitare questi fenomeni si sono sviluppate delle strategie di gestione delle risorse e dei meccanismi per la loro allocazione.
  
  ## Controllo della concorrenza nelle basi di dati
  
  Il controllo della concorrenza è un concetto importante quando si parla di basi di dati. In questo contesto transazioni che vengono eseguite concorrentemente possono dare luogo a 3 tipi i problemi:
  
  * Lost update (dipendenza write → write)
  * Dirty read (dipendenza write → read)
  * Unrepeatable read (dipendenza read → write)
  
  In base a questi tipi di problemi possiamo definire alcuni livelli di isolamento della base di dati:
  
  * Livello 0: CHAOS. Si presentano tutti e tre i problemi.
  * Livello 1: BROWSE. Assenza di lost update.
  * Livello 2: CURSOR STABILITY. Assenza di lost update e di dirty read.
  * Livello 3: REPEATABLE READS. Nessuno dei tre problemi.
  
  Il controllo della concorrenza nelle basi di dati viene gestito dal transaction manager, dal lock manager e dal data manager.
  
  