stringtranslate.com

Leer-modificar-escribir

En informática , la lectura-modificación-escritura es una clase de operaciones atómicas (como test-and-set , fetch-and-add y compare-and-swap ) 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 evitan las 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 no bloqueante .

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 requiere un número de consenso dado solo con 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 utilizan 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 los niveles RAID que realizan operaciones de escritura reales como secuencias atómicas de lectura-modificación-escritura. [4] Dichos niveles RAID incluyen RAID 4 , RAID 5 y RAID 6 .

Véase también

Referencias

  1. ^ "Escritura de código sin bloqueos: una cola corregida" por Herb Sutter : "Comparar e intercambiar (CAS) está... ampliamente disponible... Sin embargo, algunos sistemas proporcionan en cambio el equivalente y poderoso sistema LL/SC con almacenamiento condicional y vinculado a carga".
  2. ^ Herlihy, Maurice (enero de 1991). "Sincronización sin espera" (PDF) . ACM Trans. Program. Lang. Syst . 13 (1): 124–149. CiteSeerX  10.1.1.56.5659 . doi :10.1145/114005.102808. S2CID  2181446. Consultado el 20 de mayo de 2007 .
  3. ^ Massmind: "El problema de leer-modificar-escribir"
  4. ^ "Organizaciones RAID básicas". umass.edu . Archivado desde el original el 24 de febrero de 2021 . Consultado el 4 de octubre de 2013 .