Wie funktioniert das Kopieren und Einfügen großer Dateien?

Wie funktioniert das Kopieren und Einfügen großer Dateien?

Ich bin neugierig, wie Computer das Kopieren und Einfügen großer Ordner ausführen. Ich habe gelesen, dass das Kopieren und Einfügen von Text zwischen verschiedenen Prozessen oder demselben Prozess dadurch erreicht wird, dass der Inhalt im RAM gespeichert und dann von dort an den Zielort kopiert wird.

Wie also verlaufen die Computeranweisungen beim Kopieren eines Ordners von beispielsweise 10 GB auf einem Computer mit 2 GB RAM und maximal 4 GB virtuellem Speicher? Das Kopieren von Dateien unterscheidet sich vom Kopieren von Text.

Ich denke, es ist eine grundsätzliche Frage, aber ich bin für alle Links und Erkenntnisse dankbar.

Antwort1

Die Zwischenablage muss nicht die gesamte Datei enthalten. Wenn Sie eine Datei (oder mehrere) kopieren, wird nur ihr Pfad in die Zwischenablage eingefügt. Sie wird auch als Datei gekennzeichnet – die Zwischenablage merkt sich den Inhaltstyp, z. B. einfacher Text, formatierter Text, Datei, Bild, Word-Text usw. Aus diesem Grund können Sie beispielsweise nicht ein Bild in Paint öffnen, + drücken Ctrlund Ces dann in ein Verzeichnis einfügen – weil Sie ein Bild kopiert haben und Verzeichnisse Dateien enthalten, keine Bilder.

Wenn Sie kompatible Inhalte (also Dateien und/oder Ordner) in ein Verzeichnis einfügen, übernimmt eine Anwendung den Kopier-/Verschiebevorgang. Standardmäßig wird dies der explorerProzess sein (derselbe, der für die Anzeige des Startmenüs und aller Datei-Explorer-Fenster verantwortlich ist), aber einige Anwendungen können ihn ersetzen. [1]

Was jetzt passiert, hängt davon ab, was Sie tun:

  • Wenn du bistVerschieben einer Datei in ein anderes Verzeichnis auf derselben Partition, wird es nicht physisch auf der Festplatte verschoben, nur sein Pfad wird aktualisiert [2] .
  • Wenn du bistVerschieben einer Datei auf eine andere Partition, wird die Datei in gleich große Blöcke aufgeteilt [3] und diese werden nacheinander kopiert. Anschließend wird die Originaldatei gelöscht. Zu kleine Blöcke verlangsamen den Vorgang, zu große Blöcke verbrauchen mehr Speicher.
  • Genau das Gleiche wird passieren, wenn SieKopieren einer Datei(unabhängig davon, ob es sich um dieselbe Partition handelt oder nicht), außer dass die Originaldatei nicht gelöscht wird.
  • Schreiben auf einen externen Speicher(wie USB-Laufwerke) funktioniert nicht genau so [4] und ich bin mir nicht sicher, was dann genau passiert. Ich vermute, dass es sich nicht um einen kontinuierlichen Chunk-für-Chunk-Prozess handelt, sondern dass alle paar Chunks etwas anderes passiert (pufferbezogen?). Wenn jemand etwas darüber weiß, kann er es gerne bearbeiten.

Anmerkungen:

[1]. Zum BeispielTeraCopy, ein schöner, erweiterter Ersatz für das Kopierfenster.

[2]. Die physische Dateistruktur auf der Festplatte ähnelt nicht der Verzeichnisstruktur - sie ist flach und alle Hierarchieinformationen werden in einem separaten Teil der Partition gespeichert. Wie dies genau umgesetzt wird, hängt vom Dateisystem ab (siehe beispielsweiseMFT). Dieser Informationsblock enthält alle Informationen über Dateispeicherorte usw. Wenn Sie also eine Datei innerhalb einer Partition verschieben, müssen Sie sie nicht physisch verschieben – nur die Pfadinformationen müssen aktualisiert werden.

[3]. Nicht wörtlich, auf der Festplatte wird nichts aufgeteilt. Das Programm, das den Kopiervorgang durchführt, verhält sich so, als gäbe es mehrere separate Teile, aber die Originaldatei bleibt unberührt. Es ist rein virtuell.

[4]. Man kann es sehen, wenn man TeraCopy benutzt: Der „vorhergesagte Fortschritt“ funktioniert nicht wie bei Festplatten, stattdessen wird der „tatsächliche Fortschritt“ eingeholt, dann wird der „vorhergesagte Fortschritt“ erweitert und so weiter. Das Standard-Kopierfenster des Explorers hat auch USB-Probleme.

verwandte Informationen