Мне любопытно узнать, как компьютеры выполняют "копирование" и "вставку" больших папок. Я читал, что копирование и вставка текста между различными процессами или один и тот же процесс достигается путем сохранения содержимого в ОЗУ и последующего копирования его оттуда в место назначения.

Итак, как протекают компьютерные инструкции при копировании папки, скажем, 10 ГБ на машину с 2 ГБ ОЗУ и 4 ГБ макс. Виртуальной памяти. Отличается ли копия файла от текстовой копии.

Я думаю, что это основной вопрос, но любые ссылки или идеи приветствуются.

1 ответ1

5

Буфер обмена не должен содержать весь файл. Когда вы копируете файл (или файлы), в буфер обмена помещается только его путь. Он также помечен как файл - буфер обмена отслеживает тип его содержимого, например, простой текст, форматированный текст, файл, изображение, текст Word и т.д. Вот почему вы не можете, например, открыть изображение в Paint, нажмите Ctrl+C а затем вставьте его в каталог - потому что вы скопировали изображение, а в каталогах хранятся файлы, а не изображения.

Когда вы вставляете в каталог совместимый контент (то есть файл (ы) и / или папку (и)), некоторое приложение будет выполнять операцию копирования / перемещения. По умолчанию это будет процесс explorer (тот же, который отвечает за отображение меню «Пуск» и всех окон проводника файлов), но некоторые приложения могут заменить его. [1]

Что происходит сейчас, зависит от того, что вы делаете:

  • Если вы перемещаете файл в другой каталог в том же разделе, он не будет физически перемещен на диске, будет обновлен только его путь [2].
  • Если вы перемещаете файл в другой раздел, он будет разбит на куски одинакового размера [3], и они будут скопированы один за другим, после чего исходный файл будет удален. Слишком маленькие фрагменты будут замедлять процесс, слишком большие фрагменты будут занимать больше памяти.
  • Точно так же произойдет, когда вы копируете файл (независимо от того, является ли он тем же разделом или нет), за исключением того, что исходный файл не будет удален.
  • Запись на внешнее хранилище (например, на USB-накопители) работает не совсем так [4], и я не уверен, что именно тогда произойдет. Я предполагаю, что это не непрерывный процесс порции, а что-то еще происходит каждые несколько порций (связанных с буфером?). Если кто-то знает что-то об этом, то смело редактируйте.

Аннотации:

[1]. Например, TeraCopy, отличная расширенная замена окна копирования.

[2]. Физическая файловая структура на жестком диске не похожа на структуру каталогов - она плоская, и вся информация об иерархии хранится в отдельной части раздела. Как именно это сделать, зависит от файловой системы (например, см. MFT). Этот информационный блок содержит всю информацию о расположении файлов и т.д. Поэтому, когда вы перемещаете файл внутри одного раздела, нет необходимости перемещать его физически - только информация о пути должна быть обновлена.

[3]. Не буквально, ничего не будет разделено на жестком диске. Программа, которая обрабатывает процесс копирования, будет работать так, как если бы было несколько отдельных блоков, но исходный файл не будет затронут. Это чисто виртуально.

[4]. Это можно увидеть при использовании TeraCopy: "прогнозируемый прогресс" работает не так, как на стационарных дисках, вместо этого "реальный прогресс" догоняет его, затем "прогнозируемый прогресс" расширяется и так далее. Окно копирования по умолчанию в Проводнике также содержит ошибки USB.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .