Буфер
Буфер — область памяти, предназначенная для временного хранения данных во время их передачи между двумя компонентами системы.
Описание[править]
В широком смысле буфер — это любой временный накопитель данных.
Идея буферизации появилась в 1950—1960-х годах вместе с первыми системами пакетной обработки. Ранние компьютеры, такие как IBM 1401 или UNIVAC, имели крайне медленные периферийные устройства (перфоленты, магнитные ленты, принтеры). Чтобы процессор не простаивал в ожидании завершения ввода-вывода, данные сначала собирались в буфер в оперативной памяти, а затем обрабатывались пакетами. За счёт этого компьютеры работали значительно быстрее.
В известной операционной системе UNIX также с самого начала была реализована полноценная буферизация. Стандартная библиотека ввода-вывода имеет автоматическую буферизацию для stdin, stdout и stderr. Иногда она может быть даже избыточной, из-за чего при запуске скрипта скажем вывод может писаться в лог только в конце работы скрипта, отсюда важно корректно писать код.
Сейчас во всех популярных операционных системах ядро поддерживает page cache и buffer cache, где хранятся копии блоков файловой системы. Когда программа вызывает read() или write(), данные обычно не идут сразу на диск, а остаются в буфере. Это резко повышает производительность.
Также имеется всем известный буфер обмена, кусочек ОС, куда сам пользователь может впендюрить произвольный текст или картинку, но только одну. Работа с ним производится посредством всем известных кнопочек Ctrl+C и Ctrl+V.
Применяется буферизация и в сетевых технологиях.