Разница между буферизацией и кэшированием в ОС

Автор: Laura McKinney
Дата создания: 2 Апрель 2021
Дата обновления: 5 Май 2024
Anonim
Эффективно копируем гигабайтные файлы по сети в Linux / Unix / Mac OS
Видео: Эффективно копируем гигабайтные файлы по сети в Linux / Unix / Mac OS

Содержание


Большинство людей путают термины буферизация и кэширование. Хотя оба хранят данные временно, но они отличаются друг от друга. Буферизация в основном используется для соответствия скорости передачи между er и приемником. С другой руки, кэш ускоряет скорость доступа к многократно используемым данным. Они также имеют некоторые другие различия, которые обсуждались в сравнительной таблице ниже.

Содержание: буферизация против кэширования

  1. Сравнительная таблица
  2. Определение
  3. Ключевые отличия
  4. Вывод

Сравнительная таблица

Основа для сравненияБуферизацияКэширование
основной Буферизация соответствует скорости между er и получателем потока данных.Кэширование ускоряет скорость доступа к многократно используемым данным.
магазины Буфер хранит оригинальную копию данных.Кэш хранит копию оригинальных данных.
Место расположенияБуфер - это область в первичной памяти (RAM).Кэш-память реализована на процессоре, а также на оперативной памяти и на диске.


Определение буферизации

Буферизация - это область в основной памяти (ОЗУ), в которой временно хранятся данные при их передаче между двумя устройствами или между устройством и приложением. Буферизация помогает в согласование скорости между приемником и приемником потока данных. Если скорость передачи er медленнее, чем приемник, то в основной памяти приемника создается буфер, и он накапливает байты, полученные от er. Когда все байты данных поступили, он предоставляет данные для работы получателя.

Буферизация также помогает когда er и получатель имеют разный размер передачи данных.В компьютерных сетях буферы используются для фрагментация а также повторная сборка данных. С другой стороны, большие данные фрагментированы на маленькие пакеты и передаются по сети. На стороне получателя создается буфер, который собирает все пакеты данных и собирает их, чтобы снова создать большие данные.


Буферизация также поддерживает копировать семантику для ввода / вывода приложения, Семантика копирования может быть объяснена на примере. Предположим, что приложение имеет буфер данных, который нужно записать на жесткий диск. Для этого приложение вызывает системный вызов write (). Теперь предположим, что приложение изменяет данные буфера до возврата системного вызова. В этом случае семантика копирования предоставляет версию данных во время системного вызова.

Буферы реализованы в трех емкостях.

Нулевая емкость: Здесь максимальный размер буферной памяти равен нулю. Он не может содержать никаких данных, поэтому он должен быть заблокирован, пока получатель не получит данные.

Ограниченная емкость: Здесь размер буферной памяти конечен. В максимуме он может n блок данных. Если буферная память заполнена, она блокируется до тех пор, пока в памяти не будет свободного места.

Неограниченная емкость: здесь буферная память потенциально бесконечна. Может быть отправлено любое количество блоков данных. Эр никогда не блокируется.

Определение кеширования

Кеш - это память, реализованная в процессоре, который хранит копию оригинальных данных, Идея, лежащая в основе кэширования, заключается в том, что недавно использованные дисковые блоки должны быть сохранены в кэш-памяти, чтобы при повторном обращении пользователя к тем же дисковым блокам он мог обрабатываться локально через кэш-память, избегая сетевого трафика.

Размер кэша ограничен, поскольку он содержит только недавно использованные данные. Когда вы изменяете файл кэша, вы также можете просмотреть это изменение в исходном файле. Если требуемые данные не находятся в кэш-памяти, данные копируются из источника в кэш-память, чтобы сделать ее доступной для пользователя при следующем запросе этих данных.

Данные кеша также могут храниться на диске вместо оперативной памяти, поскольку у них есть одно преимущество: дисковый кеш надежны В случае сбоя системы кэшированные данные все еще доступны на диске. Но данные будут потеряны в энергозависимой памяти, такой как RAM. Но одно из преимуществ хранения кэшированных данных в баран это то, что будет доступно быстро.

  1. Основное различие между буфером и кешем заключается в том, что буферная память используется для того, чтобы справляться с разной скоростью между er и получателем потока данных, тогда как кеш - это память, в которой хранятся данные, так что скорость доступа может быть увеличена для многократно используемых данных. ,
  2. Буфер всегда несу исходные данные быть отправленным получателю. Тем не менее, кеш несет копия оригинальных данных.
  3. Буфер всегда реализован в основная память (RAM), но кеш может быть реализован в баран а также в диск.

Вывод:

Буферизация и кеширование временно хранят данные, но оба они используются для разных целей. Где буфер соответствует скорости между двумя взаимодействующими устройствами, а кэш ускоряет доступ к данным, которые посещаются повторно.