Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Copy-On-Write – Wikipedia
Copy-On-Write – Wikipedia
aus Wikipedia, der freien Enzyklopädie
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen) ausgestattet. Angaben ohne ausreichenden Beleg könnten demnächst entfernt werden. Bitte hilf Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst.
  • Verfahren
  • 1. Eine Datei wird erstellt
    1. Eine Datei wird erstellt
  • 2. Eine Kopie nutzt dieselben Datenblöcke
    2. Eine Kopie nutzt dieselben Datenblöcke
  • 3. Nur veränderte Datenblöcke werden neu geschrieben
    3. Nur veränderte Datenblöcke werden neu geschrieben
  • 4. Nur veränderte Datenblöcke werden neu geschrieben
    4. Nur veränderte Datenblöcke werden neu geschrieben

Das Copy-On-Write-Verfahren (kurz COW bzw. CoW genannt, englisch wörtlich für „Kopieren-beim-Schreiben“) ist in der Datenverarbeitung eine Optimierungsmethode zur Vermeidung unnötiger Kopien und Kopiervorgänge, beispielsweise zwischen Prozessen unter unixartigen Systemen, insbesondere bei oder nach einem fork-Systemaufruf.

Die Grundidee des Verfahrens ist, dass identische Daten mehrerer – anfangs ebenfalls identischer – Dateien nur einmal vorhanden sein müssen. Erstellt man also ein Duplikat einer vorhandenen Datei, so muss der Inhalt des Duplikats nicht gespeichert werden. Es genügt, den neuen Dateinamen und den Ablageort im Dateisystem vorzumerken. Erst wenn eine der duplizierten Dateien verändert wird, also einen neuen Inhalt bekommt, müssen die veränderten Datenblöcke bzw. gegebenenfalls die gesamte Datei getrennt gespeichert werden.[1] Der Kopie wird zwar eine eigene Inode zugewiesen, die darin gespeicherten Zeigerstrukturen, welche auf die Datenblöcke zeigen, stimmen allerdings mit denen des Originals überein. Erst bei Veränderung einer der Datenblöcke wird für die Änderung ein neuer Datenblock verwendet und der entsprechende Zeiger neu gesetzt. Bei nicht geänderten Datenblöcken können weiterhin die originalen Blöcke referenziert bleiben.

Hauptspeicher

[Bearbeiten | Quelltext bearbeiten]

Wenn der Kernel eine Speicherseite im Adressraum eines anderen Prozesses verfügbar machen muss, ist es nicht nötig, die Daten tatsächlich zu kopieren oder ein weiteres Mal im Hauptspeicher anzulegen, wenn die Daten lediglich ausgelesen, aber nicht beschrieben werden. Es genügt, wenn erst einmal die beiden Prozesse auf ein und dieselbe Speicherseite zugreifen. Erst wenn einer der beiden Prozesse die Daten zu ändern 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 Hauptprozessoren meist mit Hilfe von Paging realisiert, wobei die beiden Prozesse auf die gleiche Speicherseite zugreifen. 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.

Dateisystem

[Bearbeiten | Quelltext bearbeiten]

Bei Dateisystemen bedeutet Copy-On-Write, dass geänderte Blöcke nicht überschrieben, sondern zunächst vollständig an einen freien Platz kopiert werden.[2] Danach werden Verweise auf den Block in den Metadaten aktualisiert. Copy-On-Write ermöglicht transaktionsbasierende Dateisysteme, die unter anderem ohne Verzögerung Speicherabbilder (oder Schnappschüsse derselben) anlegen können. Alte Metadaten und Blöcke werden dabei nicht gelöscht, sondern dem jeweiligen Speicherabbild zugeordnet.

ZFS, Btrfs, APFS[3], NILFS, Bcachefs sowie XFS[4] sind bekannte Vertreter von Dateisystemen, die auf Copy-on-Write bauen.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ Ralph Tandetzky: cow_ptr – Der Smartpointer für Copy-On-Write. In: Informatik Aktuell: Entwicklung / Programmiersprachen. Alkmene Verlags- und Mediengesellschaft mbH, 19. September 2017, abgerufen am 28. November 2018: „Copy-On-Write bedeutet, dass beim Kopieren einer Datenstruktur X ‚unter der Haube‘ nur ein Pointer (oder eine Referenz) auf die internen Daten weitergereicht wird. Eine echte und tiefe Kopie der eigentlichen Daten wird dabei erst dann durchgeführt, wenn eine Instanz von X ihre internen Daten verändert.“ 
  2. ↑ Copy-on-Write. In: ITwissen.info. DATACOM Buchverlag GmbH, 2018, abgerufen am 28. November 2018: „Copy-on-Write, was für ‚Kopieren beim Schreiben‘ steht, werden dann Kopien angefertigt, wenn ein Benutzer Kopien verändert hat.“ 
  3. ↑ Stefan Luber: Was ist Copy-on-Write (CoW)? 27. April 2023, abgerufen am 4. Juli 2023. 
  4. ↑ Michael Larabel: XFS Copy-On-Write Support Being Improved, Always CoW Option. In: Phoronix. 19. Februar 2019, abgerufen am 6. Juli 2023 (englisch). 

Siehe auch

[Bearbeiten | Quelltext bearbeiten]
  • Deduplikation
Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Copy-On-Write&oldid=258904679“
Kategorie:
  • Speicherverwaltung
Versteckte Kategorie:
  • Wikipedia:Belege fehlen

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id