Read-Copy-Update

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

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 | modifica wikitesto]
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 | modifica wikitesto]

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 | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica