Todos os dados que eu copio passam por ele ou existe outra maneira mais direta?
Todos os dados que eu copio passam por ele ou existe outra maneira mais direta?
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.
interrupt
sempre que um comando de E / S para a block device
, como um pendrive, for concluído . A CPU continua executando a cópia. De fato, o que a CPU está fazendo é executar o ioctl
código do kernel que faz interface com os drivers de dispositivo para copiar chunks
(o nome real) DMA
. A CPU também cabos asynchronous IO
e sync IO
um pouco diferente a partir de um kernel de código de execução de-perspectiva.
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:
para cada arquivo (dev1); Faz arquivo de criação (dev2); copyfilecontent (dev1, dev2); fim;
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.