stringtranslate.com

Leer-modificar-escribir

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 .

Ver también

Referencias

  1. ^ "Escribir código sin bloqueo: una cola corregida" por Herb Sutter : "Comparar e intercambiar (CAS) está... ampliamente disponible... Sin embargo, algunos sistemas proporcionan el equivalente potente vinculado a carga/almacenamiento condicional (LL/SC) en su lugar."
  2. ^ Herlihy, Maurice (enero de 1991). "Sincronización sin esperas" (PDF) . Transmisión ACM. Programa. Lang. Sistema . 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 lectura-modificación-escritura"
  4. ^ "Organizaciones RAID básicas". umass.edu . Archivado desde el original el 24 de febrero de 2021 . Consultado el 4 de octubre de 2013 .