Буфер (информатика): различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
Sunpriat (обсуждение | вклад) Нет описания правки |
м →Преамбула: ударение |
||
Строка 2: | Строка 2: | ||
{{другие значения|буфер}} |
{{другие значения|буфер}} |
||
В [[Информатика|информатике]] ''' |
В [[Информатика|информатике]] '''бу́фер''' ({{lang-en|buffer}}), [[Множественное число|мн. ч.]] бу́феры<ref>{{Книга|автор=|заглавие=Академический толковый словарь русского языка|ссылка=|ответственный=под ред. Л. П. Крысина|издание=|место=|издательство=Институт русского языка им. В. В. Виноградова РАН|год=2016|том=2|страницы=|страниц=|isbn=|часть=[[wp:Оформление статей/Статьи об информационных технологиях/Буфер и сервер|Буфер]]}}</ref><ref>{{Книга|автор=Ваулина Е. Ю.|заглавие=Информатика. Толковый словарь.|ответственный=|издание=|место=М.|издательство=Эксмо|год=2005|страницы=|страниц=480|серия=Школьные словари|isbn=5-699-10277-9|часть=[[wp:Оформление статей/Статьи об информационных технологиях/Буфер и сервер|Буфер]]}}<!-- В словаре Крысина в дополнительной литературе указывается книга Ваулиной --></ref> — это область [[Компьютерная память|памяти]], используемая для временного хранения данных при вводе или выводе. Обмен данными (ввод и вывод) может происходить как с внешними устройствами, так и с [[Процесс (информатика)|процессами]] в пределах [[компьютер]]а. Буферы могут быть реализованы в [[Аппаратное обеспечение|аппаратном]] или [[Программное обеспечение|программном обеспечении]], но подавляющее большинство буферов реализуется в программном обеспечении. Буферы используются, когда существует разница между скоростью получения данных и скоростью их обработки, или в случае, когда эти скорости переменны, например, при буферизации печати. |
||
== Буфер и [[кэш]] == |
== Буфер и [[кэш]] == |
Версия от 05:37, 28 декабря 2018
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
В информатике бу́фер (англ. buffer), мн. ч. бу́феры[1][2] — это область памяти, используемая для временного хранения данных при вводе или выводе. Обмен данными (ввод и вывод) может происходить как с внешними устройствами, так и с процессами в пределах компьютера. Буферы могут быть реализованы в аппаратном или программном обеспечении, но подавляющее большинство буферов реализуется в программном обеспечении. Буферы используются, когда существует разница между скоростью получения данных и скоростью их обработки, или в случае, когда эти скорости переменны, например, при буферизации печати.
Буфер и кэш
Эти термины не являются взаимоисключающими, и их функции часто смешиваются, но существует различие в их предназначении. Буфер — временное хранилище, где большие блоки данных сливаются или разбиваются на части. Это необходимо для взаимодействия с запоминающим устройством, которое работает с большими блоками данных, или когда данные передаются в другом порядке чем тот, в котором они формируются, и лишь желательно — в том случае, когда использование мелких блоков неэффективно. Использование буфера приносит пользу, даже если буферизуемые данные пишутся в буфер и читаются из него однократно.
В свою очередь, использование кэша предполагает, что данные будут читаться из кэша чаще, чем записываться туда. Его назначение — уменьшить число обращений к запоминающему устройству, а не сделать их более эффективными.
Использование буферов
Метод организации обмена данными между устройствами или процессами с использованием буфера называется буферизацией. Один из наиболее известных для пользователей ПК примеров такого использования буфера — буфер обмена в ОС Microsoft Windows.
Также буферы используются в программировании для получения данных от функций. Функции Windows API, результатом работы которых является строковое значение (например, MultiByteToWideChar), принимают в качестве одного из аргументов указатель на буфер, куда производится вывод. Вот пример фрагмента исходного текста программы на C, преобразующего строку «Hello, World!» в Unicode:
// исходная строка CHAR text[] = "Hello, World!"; // буфер для получения результата WCHAR buffer[256]; // преобразование строки в Unicode MultiByteToWideChar(CP_ACP, 0, text, strlen(text) + 1, buffer, sizeof(buffer)/sizeof(WCHAR));
См. также
- Буфер обмена
- Кэш
- Переполнение буфера
- Двойная буферизация
- Тройная буферизация
- Слово «буфер» в Викисловаре
Примечания
- ↑ Буфер // Академический толковый словарь русского языка / под ред. Л. П. Крысина. — Институт русского языка им. В. В. Виноградова РАН, 2016. — Т. 2.
- ↑ Ваулина Е. Ю. Буфер // Информатика. Толковый словарь.. — М.: Эксмо, 2005. — 480 с. — (Школьные словари). — ISBN 5-699-10277-9.