Читання-модифікація-запис () — це клас атомарних операцій (таких як test-and-set, fetch-and-add і compare-and-swap), які одночасно зчитують значення з комірки пам'яті та записують до неї нове значення — або повністю нове, або обчислене як функція попереднього значення. Такі операції запобігають виникненню гонитви даних у багатопотокових застосунках. Зазвичай вони використовуються для реалізації м'ютексів або семафорів. Ці атомарні операції також широко застосовуються в неблокувальній синхронізації.

Інструкції читання-модифікації-запису часто дають неочікувані результати під час використання з пристроями введення-виведення, оскільки операція запису може впливати не на той самий внутрішній регістр, до якого звертається операція читання.Massmind: "The read–modify–write problem" Цей термін також пов'язаний із рівнями RAID, які виконують фактичні операції запису як атомарні послідовності читання-модифікації-запису. До таких рівнів RAID належать RAID 4, RAID 5 і RAID 6.

Див. також Число консенсусу Лінеаризовність Read–erase–modify–write

Примітки