Чи всі дані, які я копіюю, проходять через них чи є інший, більш прямий спосіб?
Чи всі дані, які я копіюю, проходять через них чи є інший, більш прямий спосіб?
Відповіді:
Хитрий один! Дані насправді не проходять через центральний процесор.
Дані та критичні 1 та 0 проходять через чіпсет, або виділені мікросхеми вводу / виводу та пам'ять, однак, коли ви копіюєте файли, команда зробити копію запускається процесором.
Уявіть, що перед вами є об'єкт (дані), руки (чіп чип / вводу / виводу) та ваш мозок (процесор). Ви фактично не використовуєте свій мозок для переміщення об'єкта, ваш мозок виконує «команду» на ваші руки, щоб перемістити об’єкт.
interrupt
щоразу, коли команда IO block device
, наприклад USB-накопичувач, завершується . Потім процесор продовжує виконувати копіювання. Насправді, те, що працює ЦП, - це керувати ioctl
кодом kernel, який взаємодіє з драйверами пристрою для копіювання chunks
(власне ім'я) DMA
. Процесор також обробляє asynchronous IO
і sync IO
трохи відрізняється від точки зору виконання ядра-коду.
У мейнфреймі з інтелектуальними каналами процесор просто скаже каналам зробити копію. Дуже ефективний і дозволяє робити швидкі резервні копії з невеликими витратами на процесор.
На жаль, у нас немає інтелектуальних каналів, тому процесор опиняється в циклі, подібному до:
для кожного файлу (dev1); робити createfile (dev2); copyfilecontent (dev1, dev2); кінець;
Накладні витрати центрального процесора не такі великі, якщо в одній директорії є багато невеликих файлів, особливо багато файлів. Операція створення файлу зазвичай має найвищі накладні витрати. Диск на копію диска просто розглядайте кожен диск як попередньо існуючий файл.