Буфер (информатика): различия между версиями
[непроверенная версия] | [непроверенная версия] |
→Использование буферов: уточнение |
EmausBot (обсуждение | вклад) м Перемещение 27 интервики-ссылок в Викиданные (d:Q331911) |
||
Строка 35: | Строка 35: | ||
[[Категория:Информатика]] |
[[Категория:Информатика]] |
||
[[ar:صوان (معلوماتية)]] |
|||
[[bg:Буфер (изчислителна техника)]] |
|||
[[ca:Memòria intermèdia]] |
|||
[[cs:Vyrovnávací paměť]] |
|||
[[de:Puffer (Informatik)]] |
|||
[[el:Προσωρινή μνήμη (υπολογιστές)]] |
|||
[[en:Data buffer]] |
|||
[[es:Buffer de datos]] |
|||
[[et:Puhvermälu]] |
|||
[[fa:حافظه میانگیر]] |
|||
[[fi:Puskurimuisti]] |
|||
[[fr:Mémoire tampon]] |
|||
[[he:חוצץ]] |
|||
[[hr:Međuspremnik]] |
|||
[[it:Buffer]] |
|||
[[ja:バッファ]] |
|||
[[kk:Буферлеу (информатика)]] |
|||
[[ko:버퍼 (컴퓨터 과학)]] |
|||
[[nl:Buffer (geheugen)]] |
|||
[[pl:Bufor (programowanie)]] |
|||
[[pt:Buffer (ciência da computação)]] |
|||
[[sk:Vyrovnávacia pamäť]] |
|||
[[sr:Бафер]] |
|||
[[sv:Buffert (datalogi)]] |
|||
[[tr:Ara Bellek]] |
|||
[[uk:Буфер (інформатика)]] |
|||
[[zh:緩衝器]] |
Версия от 02:26, 13 марта 2013
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
В информатике буфер (англ. buffer) — это область памяти, используемая для временного хранения данных при вводе или выводе. Обмен данными (ввод и вывод) может происходить как с внешними устройствами, так и с процессами в пределах компьютера. Буферы могут быть реализованы в аппаратном или программном обеспечении, но подавляющее большинство буферов реализуется в программном обеспечении. Буферы используются когда существует разница между скоростью получения данных и скоростью их обработки, или в случае когда эти скорости переменны, например, при буферизации печати.
Буфер и кэш
Эти термины не являются взаимоисключающими, и их функции часто смешиваются, но существует различие в их предназначении. Буфер — временное хранилище, где большие блоки данных сливаются или разбиваются на части. Это необходимо для взаимодействия с запоминающим устройством, которое работает с большими блоками данных, или когда данные передаются в другом порядке чем тот, в котором они формируются, и лишь желательно — в том случае, когда использование мелких блоков неэффективно. Использование буфера приносит пользу, даже если буферизуемые данные пишутся в буфер и читаются из него однократно.
В свою очередь, использование кэша предполагает, что данные будут читаться из кэша чаще, чем записываться туда. Его назначение — уменьшить число обращений к запоминающему устройству, а не сделать их более эффективными.
Использование буферов
Метод организации обмена данными между устройствами или процессами с использованием буфера называется буферизацией. Один из наиболее известных для пользователей ПК примеров такого использования буфера — буфер обмена в ОС 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));