Llegir-modificar-escriure

Classe d'operacions informàtiques

En informàtica, lectura-modificació-escriptura és una classe d'operacions atòmiques (com ara provar i establir, buscar i afegir i comparar i intercanviar) que llegeixen una ubicació de memòria i hi escriuen un valor nou. simultàniament, ja sigui amb un valor completament nou o amb alguna funció del valor anterior. Aquestes operacions eviten les condicions de carrera en aplicacions multifils. Normalment s'utilitzen per implementar mutexs o semàfors. Aquestes operacions atòmiques també s'utilitzen molt en la sincronització sense bloqueig.[1]

Maurice Herlihy (1991) classifica les operacions atòmiques segons els seus números de consens , de la següent manera: [2]

  • ∞: moviment i intercanvi de memòria a memòria, cua augmentada, comparació i intercanvi, recuperació i desavantatge, byte enganxós, enllaç de càrrega/emmagatzematge condicional (LL/SC)
  • 2n − 2: assignació n-registre
  • 2: provar i establir, intercanviar, buscar i afegir, posar en cua, apilar
  • 1: lectura atòmica i escriptura atòmica

És impossible implementar una operació que requereixi un número de consens determinat amb només operacions amb un nombre de consens més baix, per molt que s'utilitzin d'aquestes operacions.[3] Les instruccions de lectura, modificació i escriptura sovint produeixen resultats inesperats quan s'utilitzen en dispositius d'E/S, ja que una operació d'escriptura pot no afectar el mateix registre intern al qual s'accediria en una operació de lectura.

Aquest terme també s'associa amb nivells RAID que realitzen operacions d'escriptura reals com a seqüències de lectura-modificació-escriptura atòmiques.[4] Aquests nivells RAID inclouen RAID 4, RAID 5 i RAID 6.

Referències modifica

  1. «2.4.2.6. Read-Modify-Write Memory» (en anglès). [Consulta: 8 desembre 2023].
  2. «Lockless patterns: more read-modify-write operations [LWN.net]» (en anglès). [Consulta: 8 desembre 2023].
  3. Herlihy, Maurice ACM Trans. Program. Lang. Syst., 13, 1, January 1991, pàg. 124–149. DOI: 10.1145/114005.102808 [Consulta: 20 maig 2007].
  4. «Basic RAID Organizations» (en anglès). umass.edu. Arxivat de l'original el 2021-02-24. [Consulta: 4 octubre 2013].