Comment fonctionne le copier-coller pour les gros fichiers

0

Je suis curieux de savoir comment les ordinateurs exécutent "copier" et "coller" de gros dossiers. J'ai lu que copier-coller du texte entre différents processus ou qu'un même processus est obtenu en enregistrant le contenu dans la RAM, puis en le copiant de là vers l'emplacement prévu.

Alors, comment les instructions de l’ordinateur circulent-elles lors de la copie d’un dossier de 10 Go sur une machine disposant de 2 Go de RAM et de 4 Go de mémoire virtuelle? Si la copie du fichier est différente de la copie du texte.

Je pense que c'est une question fondamentale, mais tous les liens ou idées sont appréciés.

Sundeep
la source
Le presse-papiers ne contient pas réellement le contenu du dossier, mais seulement l'emplacement du dossier.
Dennis
Donc, il n'y a pas d'utilisation de mémoire pour cette instruction de copie? Et avez une idée du fonctionnement de cette instruction. Est-ce qu'il s'exécute en tant que processus en arrière-plan et comment l'ordinateur vérifie-t-il l'état de cette tâche de copie?
Sundeep
Je pense que cela dépend aussi du système d'exploitation. Votre question concerne-t-elle Windows?
Brad Patton
2
La copie d'un fichier peut être effectuée avec une quantité fixe de RAM: 1. Lisez, par exemple, 1 Mo du fichier source. 2. Écrivez dans le fichier de destination. 3. Répétez. Le processus de copie est géré par défaut par l'explorateur Windows.
Dennis
L'intention est de connaître l'allocation de mémoire et l'exécution de commandes. Le travail sous Windows est correct.
Sundeep

Réponses:

5

Le presse-papier ne doit pas contenir le fichier entier. Lorsque vous copiez un fichier (ou des fichiers), seul son chemin est placé dans le presse-papiers. Il est également marqué comme un fichier - le presse-papiers garde la trace du type de son contenu, comme du texte brut, du texte formaté, un fichier, une image, du texte Word, etc. C'est pourquoi vous ne pouvez pas, par exemple, ouvrir une image dans Paint, appuyez sur Ctrl+ C, puis sur collez-le dans un répertoire - car vous avez copié une image et les répertoires contiennent des fichiers et non des images.

Lorsque vous collez un contenu compatible (fichier (s) et / ou dossier (s)) dans un répertoire, certaines applications gèrent l'opération de copie / déplacement. Par défaut, ce sera le explorerprocessus (le même responsable de l'affichage du menu Démarrer et de toutes les fenêtres de l'explorateur de fichiers), mais certaines applications peuvent le remplacer. [1]

Ce qui se passe maintenant dépend de ce que vous faites:

  • Si vous déplacez un fichier dans un autre répertoire de la même partition , il ne sera pas physiquement déplacé sur le disque, seul son chemin sera mis à jour [2] .
  • Si vous déplacez un fichier sur une autre partition , il sera divisé en morceaux de même taille [3] et ceux-ci seront copiés un par un, puis le fichier d'origine sera supprimé. Des morceaux trop petits ralentiront le processus, des morceaux trop gros consommeront plus de mémoire.
  • La même chose se produira lorsque vous copiez un fichier (que ce soit ou non la même partition), sauf que le fichier d'origine ne sera pas supprimé.
  • L'écriture sur un stockage externe (comme les clés USB) ne fonctionne pas exactement comme ça [4] et je ne suis pas sûr de ce qui se passe exactement alors. Mon hypothèse est que ce n'est pas un processus continu morceau par morceau, mais que quelque chose d'autre se produit tous les quelques morceaux (liés à la mémoire tampon?). Si quelqu'un en sait quelque chose, n'hésitez pas à le modifier.

Annotations:

[1]. Par exemple, TeraCopy , qui remplace avantageusement la fenêtre de copie avancée.

[2] La structure de fichier physique sur le disque dur ne ressemble pas à la structure de répertoires. Elle est plate et toutes les informations de hiérarchie sont stockées dans une partie distincte de la partition. La méthode utilisée dépend du système de fichiers (par exemple, voir MFT ). Ce bloc d'informations contient toutes les informations sur les emplacements de fichiers, etc. Ainsi, lorsque vous déplacez un fichier à l'intérieur d'une partition, il n'est pas nécessaire de le déplacer physiquement. Seules les informations relatives au chemin d'accès doivent être mises à jour.

[3] Pas littéralement, rien ne sera divisé sur le disque dur. Le programme qui gère le processus de copie fonctionnera comme s'il existait plusieurs fragments distincts, mais le fichier d'origine ne serait pas modifié. C'est purement virtuel.

[4] Vous pouvez le voir en utilisant TeraCopy: la "progression prévue" ne fonctionne pas comme sur les lecteurs fixes, mais la "progression réelle" la rattrape, puis la "progression prévue" est développée, etc. La fenêtre de copie par défaut de l'explorateur présente également le hic USB.

Gronostaj
la source
"C’est pourquoi, par exemple, vous ne pouvez pas ouvrir une image dans Paint, appuyez sur Ctrl + C puis collez-la dans un répertoire - car vous avez copié une image et les répertoires contiennent des fichiers, pas des images." Vous pouvez avec Directory Opus. Mais votre argument est valable.
Mavromatis Lozay
TeraCopy est incroyablement lent, environ 3 fois plus lent que les transferts de fichiers via l'Explorateur Windows, du moins sous Windows 10 pro. Robocopy, livré avec Windows 10, peut copier des fichiers via plusieurs threads simultanés et accélérer considérablement le processus de transfert. FastCopy (application externe) fait de même
Matt