Copy-On-Write

aus Wikipedia, der freien Enzyklopädie

Wechseln zu: Navigation, Suche

Das Copy-On-Write-Verfahren ist in der Informatik eine Optimierungsmethode zur Vermeidung überflüssiger Kopien von Daten, beispielsweise zwischen Prozessen unter Unix-artigen Systemen, insbesondere bei oder nach einem fork-Systemaufruf.

Wenn der Betriebssystemkern eine Speicherseite im Adressraum eines anderen Prozesses verfügbar machen muss, ist es überflüssig, die Daten tatsächlich zu kopieren, d. h. ein weiteres mal im Hauptspeicher anzulegen, wenn die Daten nur ausgelesen, aber nicht beschrieben werden. Es reicht, wenn erst einmal die beiden Prozesse auf ein und dieselbe Speicherseite zugreifen. Erst wenn einer der beiden Prozesse die Daten zu manipulieren versucht, müssen diese tatsächlich (und dann auch nur teilweise) kopiert werden, da sich die Inhalte der Speicherseiten dann unterscheiden.

Dies wird auf modernen CPUs meist mit Hilfe des Pagings realisiert: die beiden Prozesse greifen auf die gleiche Speicherseite zu. Sowohl im Adressraum des Besitzers des Originals, als auch in dem des Besitzers der Kopie wird dieser gemeinsame Speicherbereich als „nur lesbar“ markiert. Findet ein Schreibzugriff statt, wird das Betriebssystem informiert, so dass dieses vor dem tatsächlichen Schreibzugriff die betroffene Speicherseite durch eine tatsächliche Kopie ersetzen kann.

Persönliche Werkzeuge
Buch erstellen