Read-Copy-Update
# Read-Copy-Update

Read-Copy-Update è un meccanismo di sincronizzazione presente in alcuni sistemi operativi moderni, spesso usato in alternativa ai lock di scrittura-lettura. Sono caratterizzati da un ritardo di lettura nella pratica nullo, compensato da una fase di scrittura più dispendiosa. Per questo motivo si adattano particolarmente alle strutture dati frequentemente lette e raramente scritte. Il funzionamento ricorda il pattern publish/subscribe: la lettura avviene all'interno di sezioni critiche in cui il thread lettore vede una versione coerente del dato, mentre chi scrivere deve "pubblicare" il nuovo valore. In questo modo si crea il concetto di versioni multiple dell'oggetto condiviso.

## Funzionamento

Il concetto chiave del meccanismo RCU è che il thread lettore non può entrare in attesa. Questo causa i ben noti problemi di sincronizzazione: come garantire che nessuno legga se l'aggiornamento del dato non è ancora terminato e come garantire che una sequenza di letture garantisca il ritorno dello stesso valore.

## Supporto a RCU

Sistemi operativi:

* Linux kernel dalla versione 2.6
* DragonFly BSD
* DYNIX/ptx
* K42

User-space:

* Linux tramite liburcu
