Read-copy-update

Read-copy-update (RCU) — один із механізмів синхронізації в інформатиці, що забезпечує ексклюзивний доступ до спільного ресурсу; застосовується для розв'язання задачі читачів та записувачів.

Перевагами RCU над read–write lock є:

  • малі накладні витрати на блокування, бо немає ексклюзивного блокування, оскільки операція запису є атомарною;
  • операції читання виконуються без затримки (англ. wait-free).

Недоліками є:

  • додаткові ресурси пам'яті та часу на створення копії даних при кожному записі.

Алгоритм :

  • rcu_read_lock() — встановлює спільний блок на поточну версію даних, блокуючи її від видалення;
  • rcu_read_unlock() — знімає блок з версії даних;
  • rcu_assign_pointer() — атомарна операція оновлення вказівника на дані, щоб він показував на новосторену версію.
  • synchronize_rcu() — очікує зняття всіх блоків з даної версії даних і видаляє її.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.