Læs – modificer – skriv - Read–modify–write
I datalogi er læse-ændre-skriv en klasse med atomoperationer (såsom test-og-sæt , hente-og-tilføj og sammenligne-og-swap ), der både læser et hukommelsessted og skriver en ny værdi ind i det samtidig, enten med en helt ny værdi eller en eller anden funktion af den forrige værdi. Disse operationer forhindrer race forhold i multi-threaded applikationer. De bruges typisk til at implementere mutexer eller semaforer . Disse atomoperationer bruges også stærkt til synkronisering, der ikke blokerer .
Maurice Herlihy (1991) rangerer atomare operationer ved deres konsensus -numre, som følger:
- ∞ : flytning og bytte fra hukommelse til hukommelse, forstærket kø, sammenligning-og-swap , hent-og-ulemper , klistret byte , load-link / store-betinget (LL / SC)
- 2n - 2 : n-register tildeling
- 2 : test-og-sæt , swap, hent og tilføj , kø, stak
- 1 : atomlæst og atomskrivning
Det er umuligt at implementere en operation, der kræver et givet konsensusnummer med kun operationer med et lavere konsensusnummer, uanset hvor mange af sådanne operationer man bruger. Læs - modificer - skrivinstruktioner giver ofte uventede resultater, når de bruges på I / O- enheder, da en skrivefunktion muligvis ikke påvirker det samme interne register , som man får adgang til i en læseoperation.
Dette udtryk er også forbundet med RAID- niveauer, der udfører faktiske skriveoperationer som atom- læse-ændre-skriv-sekvenser. Sådanne RAID-niveauer inkluderer RAID 4 , RAID 5 og RAID 6 .
Se også
Referencer
| Denne computervidenskabsartikel er en stub . Du kan hjælpe Wikipedia ved at udvide den . |