Todos os dados que eu copio passam por ele ou existe outra maneira mais direta?
cpu
file-transfer
Felix Dombek
fonte
fonte
Respostas:
Complicado! Os dados realmente não passam pela CPU em si.
Os dados e os 1 e 0 críticos passam pelo chipset ou chips de E / S e memória dedicados; no entanto, quando você está copiando arquivos, o comando para fazer a cópia é executado pelo processador.
Imagine ter um objeto à sua frente (os dados), seus braços (chipset / chip de E / S) e seu cérebro (a CPU). Na verdade, você não usa seu cérebro para mover o objeto; seu cérebro executa o "comando" para seus braços para mover o objeto.
fonte
interrupt
sempre que um comando de E / S para ablock device
, como um pendrive, for concluído . A CPU continua executando a cópia. De fato, o que a CPU está fazendo é executar oioctl
código do kernel que faz interface com os drivers de dispositivo para copiarchunks
(o nome real)DMA
. A CPU também cabosasynchronous IO
esync IO
um pouco diferente a partir de um kernel de código de execução de-perspectiva.A CPU precisa executar o programa que lê o arquivo de origem e depois grava o arquivo de destino.
Os dados lidos (geralmente) serão lidos na memória principal em pedaços, mas na verdade não passam pela CPU.
fonte
Em um mainframe com canais inteligentes, a CPU apenas informava aos canais para fazer a cópia. Muito eficiente e permite backups grandes e rápidos com pouca sobrecarga da CPU.
Infelizmente, como não temos canais inteligentes, a CPU acaba em um loop semelhante a:
A sobrecarga da CPU não é tão alta, a menos que haja muitos arquivos pequenos, especialmente muitos arquivos no mesmo diretório. A operação de criação de arquivo geralmente possui a maior sobrecarga. A cópia de disco para disco apenas trata cada disco como um arquivo pré-existente.
fonte