close
Přeskočit na obsah

Read-copy-update

Z Wikipedie, otevřené encyklopedie

Read-copy-update (RCU) je v informatice jedno ze synchronizačních primitiv používaných pro vzájemné vyloučení[pozn. 1] a může být někdy využito jako alternativa k zámkům čtenářů–zapisovatelů. RCU zajišťuje velmi nízkou režii a neblokující čtení, avšak může být náročné na prostor, protože musí pro již existující čtenáře zachovat původní kopii dat (pouze do chvíle, než poslední čtení původních dat skončí).

Princip použití

[editovat | editovat zdroj]

Název je odvozen ze způsobu, jakým se RCU používá pro aktualizaci spojové struktury na místě. Vlákno, které potřebuje strukturu modifikovat musí provést následující kroky:

  • vytvořit novou strukturu,
  • zkopírovat data ze staré struktury do nové, a uložit si ukazatel na starou strukturu,
  • upravit novou (zkopírovanou) strukturu,
  • aktualizovat globální ukazatel, aby ukazoval na novou strukturu,
  • uspat se, dokud jádro operačního systému nezjistí, že žádný proces nečte starou strukturu, např. pomocí synchronize_rcu() v linuxovém jádře,
  • po probuzení jádrem uvolnit starou strukturu.

Aby vlákno mohlo modifikovat strukturu, musí vytvořit její kopii, proto se metoda nazývá „read-copy update“. Zkratka „RCU“ byla jedním z mnoha příspěvků linuxové komunity. Jinými názvy pro podobné techniky je „pasivní serializace“ a „MP defer“ od programátorů VM/XA a „generace“ od programátorů K42 a Tornado.

  1. RCU neimplementuje vzájemné vyloučení v běžném významu: díky RCU probíhá čtení paralelně se zápisem (změnou/aktualizací sdílených dat). RCU používá mechanismus prostoru místo tradičního mechanismu času, který je používán tradičními prostředky vzájemného vyloučení (tj. např. zámky). Mechanismus prostoru funguje na principu přístupu ke starší verzi dat, zatímco probíhá jejich aktualizace (v jiném místě).

V tomto článku byl použit překlad textu z článku Read-copy-update na anglické Wikipedii.

    • Method and apparatus for retrieving network quality of service policy information from a directory in a quality of service policy management system. US. Patentový spis 7099932.
    • BAUER, R.T. Operational Verification of a Relativistic Program; PSU Tech Report TR-09-04 [online]. Červen 2009. Dostupné v archivu pořízeném z originálu dne 2015-06-18. 

    Související články

    [editovat | editovat zdroj]

    Externí odkazy

    [editovat | editovat zdroj]