Разница в буфере и кеше?

Может ли кто-нибудь детализировать - В чем разница между буфером и кешем в системной памяти?

Ответ 1

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

A кеш - это хранилище для ускорения определенных операций. Вещи попадают в кеш и должны извлекаться из него несколько раз, снова и снова. Там нет механизма "протекающего через кеш" - данные не поступают и не выходят в одном порядке - но это всего лишь контейнер для хранения. Заказ может быть что угодно, на самом деле - предметы адресуются с помощью ключа, они не "текут", а "помещаются" и остаются там (пока их не выбрасывают из-за того, что они не используются, или потому, что система идет вниз).

Ответ 2

A buffer представляет собой современную коллекцию местоположения, где огромное количество данных управляется или разбирается. Это может быть основополагающим для взаимодействия с набором устройств сбора, которые нуждаются в огромных блоках информации или когда данные должны предоставляться во многом, чем то, в чем они сделаны, или редко значительны, когда меньше блоков недостаточно. Преимущество здесь, даже если буферные данные сохраняются в буфере за один раз и выходят из буфера один раз.

A cache, с другой стороны, думает, что данные будут извлекаться из кеша более одного раза, чем они написаны на них. Его цель - сократить доступ к базовому фонду. Buffer - это программируемый кэш, управляемый операционной системой в основном хранилище и используемый для получения наиболее необходимых данных с диска, чтобы их не нужно было получать из памяти. Эта функция доступна операционной системе. Хотя кэш-память - это реальное аппаратное обеспечение, которое процессор использует для сокращения эффективного времени доступа к памяти.

Ответ 3

Добавьте что-то из Wiki о разнице между Buffer и Cache.

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

Кэш также увеличивает производительность передачи. Часть увеличения аналогично происходит из возможности того, что несколько небольших передач объединится в один большой блок. Но основной прирост производительности происходит потому, что есть хорошая вероятность, что одни и те же данные будут прочитаны из кеша несколько раз, или что письменные данные скоро будут прочитаны. Цель кеша - уменьшить доступ к более медленному место хранения. Кэш также обычно представляет собой слой абстракции, который разработан быть невидимым с точки зрения соседних слоев.

Ответ 4

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