Все ли данные, которые я копирую, проходят через это или есть другой, более прямой путь?
cpu
file-transfer
Феликс Домбек
источник
источник
Ответы:
Хитрый! Данные на самом деле не проходят через процессор как таковой.
Данные и критические 1 и 0 проходят через набор микросхем или выделенные микросхемы ввода-вывода и память, однако при копировании файлов команда, выполняющая копирование, запускается процессором.
Представьте себе объект перед вами (данные), ваши руки (чипсет / чип ввода / вывода) и ваш мозг (процессор). Вы на самом деле не используете свой мозг для перемещения объекта, ваш мозг запускает «команду» на руки, чтобы переместить объект.
источник
interrupt
всякий раз, когда команда ввода-выводаblock device
, такая как USB-накопитель, завершена . Затем процессор продолжает выполнять копирование. Фактически, то, что делает процессор, - это запускioctl
кода ядра, который взаимодействует с драйверами устройств для копированияchunks
(действительного имени)DMA
. Процессор также обрабатываетasynchronous IO
иsync IO
немного отличается от перспективы исполнения кода ядра.Процессор должен запустить программу, которая читает исходный файл, а затем записывает файл назначения.
Прочитанные данные будут (обычно) считываться в основную память порциями, но на самом деле не проходят через процессор.
источник
На мэйнфрейме с интеллектуальными каналами процессор просто скажет каналам сделать копию. Очень эффективный и позволяет быстро создавать большие резервные копии с минимальными нагрузками на процессор.
К сожалению, у нас нет интеллектуальных каналов, поэтому ЦП оказывается в цикле, похожем на:
Загрузка ЦП невелика, если в нем много маленьких файлов, особенно много файлов в одном каталоге. Операция создания файла обычно имеет самые высокие издержки. Копирование с диска на диск просто рассматривает каждый диск как существующий файл.
источник