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