¿Están pasando todos los datos que copio o hay otra forma más directa?
cpu
file-transfer
Felix Dombek
fuente
fuente
Respuestas:
¡Complicado! Los datos realmente no pasan por la CPU per se.
Los datos y los 1 y 0 críticos pasan por el conjunto de chips, o chips de E / S dedicados y memoria, sin embargo, cuando está copiando archivos, el procesador ejecuta el comando para hacer la copia.
Imagine tener un objeto frente a usted (los datos), sus brazos (chipset / chip de E / S) y su cerebro (la CPU). En realidad, no usa su cerebro para mover el objeto, su cerebro ejecuta el "comando" en sus brazos para mover el objeto.
fuente
interrupt
comando IO parablock device
, como una memoria USB, que se haya completado . La CPU continúa ejecutando la copia. De hecho, lo que está haciendo la CPU es ejecutar elioctl
código del núcleo que interactúa con los controladores del dispositivo para copiarchunks
(el nombre real)DMA
. La CPU también manejaasynchronous IO
y essync IO
ligeramente diferente de una perspectiva de ejecución de código de núcleo.La CPU tiene que ejecutar el programa que lee el archivo de origen y luego escribe el archivo de destino.
Los datos que se leen (generalmente) se leerán en la memoria principal en fragmentos, pero en realidad no pasan por la CPU.
fuente
En un mainframe con canales inteligentes, la CPU solo les diría a los canales que hagan la copia. Muy eficiente y permite copias de seguridad grandes y rápidas con poca sobrecarga de la CPU.
Desafortunadamente, no tenemos canales inteligentes, por lo que la CPU termina en un bucle similar a:
La sobrecarga de la CPU no es tan alta a menos que haya muchos archivos pequeños, especialmente muchos archivos en el mismo directorio. La operación de creación de archivo generalmente tiene la mayor sobrecarga. La copia de disco a disco solo trata cada disco como un archivo preexistente.
fuente