[go: nahoru, domu]

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[1]. 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[2].

Funzionamento

modifica
 
Allocazione e scrittura di una struttura. La struttura viene pubblicata solo dopo aver scritto tutti i valori.

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

modifica

Sistemi operativi:

User-space:

  1. ^ Read-Copy Update Mutual Exclusion for Linux, su lse.sourceforge.net, Linux Scalability Effort, 2001.
  2. ^ Paul E. McKenney, What is RCU, Fundamentally, su researchgate.net, 2015.
  3. ^ What is RCU, Fundamentally?, su lwn.net, 2007.
  4. ^ Userspace RCU, su liburcu.org.

Voci correlate

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