Що означає буфер?


151

Я бачу слово "БУФЕР" скрізь, але я не в змозі зрозуміти, що це саме.

  1. Хто-небудь, будь ласка, пояснить, що таке буфер у мові непростої людини ?
  2. Коли він використовується?
  3. Як він використовується?

Я помітив, що "буфер" має незначні зміни в назві, і вони, як правило, змінюються залежно від того, яка саме фізична пам'ять утримує його і для чого. Як і "Графічний буфер" - це масивний діапазон для відеопам'яті, тоді як мережевий буфер може знаходитись у звичайній оперативній пам'яті. Я не впевнений, чи це стандарт чи випадковість. Схожа на відповідь Ейлаїни до кінця.
Stephen J

Відповіді:


269

Уявіть, що ви їсте цукерки з миски. Ви берете одну штуку регулярно. Щоб чаша не закінчилася, хтось може наповнити миску, перш ніж вона порожня, так що коли ви захочете взяти ще один шматочок, у мисці є цукерки.

Чаша діє як буфер між вами та цукерковою сумкою.

Якщо ви переглядаєте фільм в Інтернеті, веб-служба буде постійно завантажувати наступні 5 хвилин або близько того в буфер, таким чином ваш комп'ютер не повинен завантажувати фільм під час його перегляду (це може спричинити зависання).


93
+1: Буфери необхідні, коли виробники та споживачі працюють із різними тарифами. Цукерки виготовляються великими партіями, але споживаються в менших кількостях - весь ланцюг поставок від виробника до вуст - це серія буферів.
С.Лотт

30
Найкраща аналогія. Змушує мене жадати цукру
Кайл Мейсі

яка тут веб-служба? Де буфер? Чи веб-сервіс є ведучим фільму?
Jwan622

Суцільне визначення. Я думаю, саме тому ми кажемо, що відео буферне, коли воно застигає, а панель прогресу відображається під час перегляду фільму
Red M

Це так приємно, здійсненно і просто.
Йонас Грьонбек

93

Термін "буфер" є дуже загальним терміном і не є специфічним для ІТ або CS. Це місце для тимчасового зберігання, щоб зменшити різницю між вхідною та вихідною швидкістю. Хоча виробник швидше, ніж споживач, виробник може продовжувати зберігати вихід у буфері. Коли споживач прискорює роботу, він може читати з буфера. Буфер знаходиться там посередині, щоб усунути проміжок.


Якщо ви оцінюєте визначення за адресою http://en.wiktionary.org/wiki/buffer , я думаю, ви отримаєте ідею.

Для підтвердження того, що нам дійсно "доводилося проходити 10 миль, думаючи, що сніг щодня ходить до школи", див. Посібник з моніторингу дзвінків TOPS-10, том 1 , розділ 11.9, "Використання захищеного вводу / виводу", в закладці 11-24. Не читайте, якщо ви піддаєтеся кошмарам.


1
+1 Мені більше подобається це пояснення. Наскільки я люблю цукерки, приклад цукеркової миски був трохи розтягнутим ІМО.
Програматор поза законом

10
Так, "місце для тимчасового зберігання чогось, щоб зменшити різницю між вхідною та вихідною швидкістю" це підсумовує ідеально.
шимпанзе

1
дякую за просте пояснення. Однак доданий URL-файл PDF був мертвим
Хассан

20

Буфер - це просто шматок пам'яті, який використовується для зберігання даних. У найзагальнішому розумінні це, як правило, одна крапка пам’яті, яка завантажується однією операцією, а потім випорожнюється в одній чи декількох прикладах «чаші з цукерками» Перчика. Наприклад, у програмі на C ви можете мати:

#define BUFSIZE 1024
char buffer[BUFSIZE];
size_t len = ;

// ... later
while((len=read(STDIN, &buffer, BUFSIZE)) > 0)
    write(STDOUT, buffer, len);

... що є мінімальною версією cp (1) . Тут буферний масив використовується для зберігання даних, прочитаних прочитаними (2), до тих пір, поки вони не будуть записані; потім буфер повторно використовується.

Існують більш складні буферні схеми, наприклад круговий буфер , де використовується деяка кінцева кількість буферів, один за другим; Після того, як буфери повністю заповнені, індекс "загортається", щоб перший був використаний повторно.


12

Буфер означає "тимчасове зберігання". Буфери важливі для обчислень, оскільки взаємопов'язані пристрої та системи рідко «синхронізуються» один з одним, тому коли інформація надсилається з однієї системи в іншу, їй потрібно десь чекати, поки система одержувача не буде готова.


6

Дійсно, це залежатиме від контексту в кожному конкретному випадку, оскільки немає жодного визначення - але кажучи дуже загалом, буфер - це місце тимчасово утримувати щось. Найкраща аналогія реального світу, яку я можу придумати, - це зона очікування. Один простий приклад обчислень - коли буфер відноситься до частини оперативної пам’яті, яка використовується для тимчасового зберігання даних.


2

Буфер - це тимчасовий заповнювач (змінних у багатьох мовах програмування) в пам'яті (ram / disk), на який можна скидати дані, а потім проводити обробку.

Існує багато переваг буферизації, оскільки він дозволяє паралельно ставитись, покращувати продукти IO тощо.

Він також має багато недоліків, якщо його не використовувати правильно, як переповнення буфера, перелив буфера тощо.

C Приклад буфера символів.

char * buffer1 = calloc (5, sizeof (char));

char * buffer2 = calloc (15, sizeof (char));


2

Буфер - це область даних, що поділяється апаратними пристроями або програмними процесами, які працюють з різною швидкістю або з різним набором пріоритетів. Буфер дозволяє кожному пристрою або процесу працювати, не затримуючись іншим. Для того, щоб буфер був ефективним, розмір буфера та алгоритми переміщення даних у буфер і з них.

буфер є "місцем, що займає середину", але існує не стільки для прискорення швидкості діяльності, скільки для підтримки координації окремих заходів.

Цей термін використовується як в програмуванні, так і в апаратному забезпеченні. У програмуванні буферизація іноді передбачає необхідність відстежувати дані з остаточного призначеного місця, щоб вони могли бути відредаговані або оброблені іншим способом перед переміщенням у звичайний файл чи базу даних.


1

Буфер - це тимчасовий заповнювач (змінних у багатьох мовах програмування) в пам'яті (ram / disk), на який можна скидати дані, а потім проводити обробку.

Термін "буфер" є дуже загальним терміном і не є специфічним для ІТ або CS. Це місце для тимчасового зберігання, щоб зменшити різницю між вхідною та вихідною швидкістю. Хоча виробник швидше, ніж споживач, виробник може продовжувати зберігати вихід у буфері. Коли споживач прискорює роботу, він може читати з буфера. Буфер знаходиться там посередині, щоб усунути проміжок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.