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.