En informática , leer, modificar y escribir es una clase de operaciones atómicas (como probar y configurar , buscar y agregar y comparar e intercambiar ) que leen una ubicación de memoria y escriben un nuevo valor en ella. simultáneamente, ya sea con un valor completamente nuevo o alguna función del valor anterior. Estas operaciones previenen condiciones de carrera en aplicaciones multiproceso. Normalmente se utilizan para implementar mutexes o semáforos . Estas operaciones atómicas también se utilizan mucho en la sincronización sin bloqueo .
Maurice Herlihy (1991) clasifica las operaciones atómicas según sus números de consenso , de la siguiente manera:
Es imposible implementar una operación que requiera un número de consenso determinado con solo operaciones con un número de consenso menor, sin importar cuántas de esas operaciones se utilicen. [2] Las instrucciones de lectura-modificación-escritura a menudo producen resultados inesperados cuando se usan en dispositivos de E/S , ya que una operación de escritura puede no afectar el mismo registro interno al que se accedería en una operación de lectura. [3]
Este término también está asociado con niveles RAID que realizan operaciones de escritura reales como secuencias atómicas de lectura, modificación y escritura. [4] Dichos niveles de RAID incluyen RAID 4 , RAID 5 y RAID 6 .