¿Están pasando todos los datos que copio o hay otra forma más directa?
¿Están pasando todos los datos que copio o hay otra forma más directa?
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.
interrupt
comando IO para block 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 el ioctl
código del núcleo que interactúa con los controladores del dispositivo para copiar chunks
(el nombre real) DMA
. La CPU también maneja asynchronous IO
y es sync IO
ligeramente diferente de una perspectiva de ejecución de código de núcleo.
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:
para cada archivo (dev1); hacer createfile (dev2); copyfilecontent (dev1, dev2); final;
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.