Est-ce que toutes les données que je copie passent par là ou y a-t-il un autre moyen plus direct?
cpu
file-transfer
Felix Dombek
la source
la source
Réponses:
Tricky one! Les données ne passent pas vraiment par le CPU en soi.
Les données et les 1 et 0 critiques passent par le chipset, ou les puces d'E / S dédiées et la mémoire, cependant, lorsque vous copiez des fichiers, la commande pour effectuer la copie est exécutée par le processeur.
Imaginez avoir un objet devant vous (les données), vos bras (chipset / puce d'E / S) et votre cerveau (le CPU). Vous n'utilisez pas réellement votre cerveau pour déplacer l'objet, votre cerveau exécute la "commande" à vos bras pour déplacer l'objet.
la source
interrupt
fois qu'une commande d'E / S surblock device
, telle qu'une clé USB, est terminée . La CPU continue ensuite d'exécuter la copie. En fait, ce que fait le CPU, c'est d'exécuter duioctl
code noyau qui s'interface avec les pilotes de périphérique pour copierchunks
(le nom réel)DMA
. Le CPU gère égalementasynchronous IO
etsync IO
légèrement différent d'une perspective d'exécution du code du noyau.La CPU doit exécuter le programme qui lit le fichier source puis écrit le fichier de destination.
Les données lues seront (généralement) lues dans la mémoire principale par blocs, mais ne passent pas réellement par le CPU.
la source
Sur un ordinateur central avec des canaux intelligents, le processeur indiquerait simplement aux canaux de faire la copie. Très efficace et permet des sauvegardes rapides et volumineuses avec peu de temps processeur.
Malheureusement, nous n'avons pas de canaux intelligents, donc le processeur se retrouve dans une boucle similaire à:
Le temps système n'est pas si élevé sauf s'il y a beaucoup de petits fichiers, en particulier beaucoup de fichiers dans le même répertoire. L'opération de création de fichier présente généralement la surcharge la plus élevée. La copie de disque à disque traite simplement chaque disque comme un fichier préexistant.
la source