Read-copy-update (RCU) je v informatice jedno ze synchronizačních primitiv používaných pro vzájemné vyloučení 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í 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.
Odkazy Poznámky
Reference
Související články Řízení paralelního zpracování Copy-on-write Preempce (informatika) Synchronizace
Externí odkazy Paul E. McKenney, Mathieu Desnoyers, and Lai Jiangshan: User-space RCU. Linux Weekly News Paul E. McKenney and Jonathan Walpole: What is RCU, Fundamentally?, What is RCU? Part 2: Usage, a RCU part 3: the RCU API. Linux Weekly News. Paul E. McKenney's RCU web page Hart, McKenney, a Demke Brown (2006). Making Lockless Synchronization Fast: Performance Implications of Memory Reclamation An IPDPS 2006 Best Paper porovnávání výkonnosti RCU s jinými bezzámkovými synchronizačními mechanismy. Journal version (včetně Walpole jako autor).
Paul McKenney: Sleepable RCU. Linux Weekly News
Kategorie:Operační systém Kategorie:Synchronizace Kategorie:Anglická slova a fráze