Lesen - Ändern - Schreiben - Read–modify–write

In der Informatik ist Lesen-Ändern-Schreiben eine Klasse von atomaren Operationen (wie Testen und Setzen , Abrufen und Hinzufügen sowie Vergleichen und Austauschen ), die sowohl einen Speicherort lesen als auch einen neuen Wert in ihn schreiben gleichzeitig entweder mit einem völlig neuen Wert oder einer Funktion des vorherigen Wertes. Diese Vorgänge verhindern Race-Bedingungen in Multithread-Anwendungen. In der Regel werden sie zur Implementierung von Mutexen oder Semaphoren verwendet . Diese atomaren Operationen werden auch häufig bei der nicht blockierenden Synchronisation verwendet .

Maurice Herlihy (1991) zählt atomare Operationen durch ihre Konsenszahlen, wie folgt:

Es ist unmöglich, eine Operation, die eine bestimmte Konsensnummer erfordert, nur mit Operationen mit einer niedrigeren Konsensnummer zu implementieren, unabhängig davon, wie viele solcher Operationen verwendet werden. Lese-, Änderungs- und Schreibanweisungen führen bei Verwendung auf E / A- Geräten häufig zu unerwarteten Ergebnissen , da eine Schreiboperation möglicherweise nicht dasselbe interne Register betrifft, auf das bei einer Leseoperation zugegriffen werden würde.

Dieser Begriff wird auch mit RAID- Levels verknüpft , die tatsächliche Schreibvorgänge als atomare Lese-, Änderungs- und Schreibsequenzen ausführen . Solche RAID-Level umfassen RAID 4 , RAID 5 und RAID 6 .

Siehe auch

Verweise