Все ли данные, которые я копирую, проходят через это или есть другой, более прямой путь?
3 ответа
Хитрый! Данные на самом деле не проходят через процессор как таковой.
Данные и критические 1 и 0 проходят через набор микросхем или выделенные микросхемы ввода-вывода и память, однако при копировании файлов команда, выполняющая копирование, запускается процессором.
Представьте себе объект перед вами (данные), ваши руки (чипсет / чип ввода / вывода) и ваш мозг (процессор). Вы на самом деле не используете свой мозг для перемещения объекта, ваш мозг запускает "команду" на руки, чтобы переместить объект.
Процессор должен запустить программу, которая читает исходный файл, а затем записывает файл назначения.
Прочитанные данные будут (обычно) считываться в основную память порциями, но на самом деле не проходят через ЦП.
На мэйнфрейме с интеллектуальными каналами процессор просто скажет каналам сделать копию. Очень эффективный и позволяет быстро создавать большие резервные копии с минимальной нагрузкой на процессор.
К сожалению, у нас нет интеллектуальных каналов, поэтому ЦП оказывается в цикле, похожем на:
for each file(dev1); do createfile(dev2); copyfilecontent(dev1, dev2); end;
Загрузка ЦП не так велика, если в нем много маленьких файлов, особенно много файлов в одном каталоге. Операция создания файла обычно имеет самые высокие издержки. Копирование с диска на диск просто обрабатывает каждый диск как существующий файл.