Что такое IO Stream Buffering?

Я не могу найти основную концепцию буферизации потока ввода-вывода и что это значит.
Любые учебники и ссылки будут полезны.

1

Решение

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

Компонент, который создает данные, может поместить их в буфер, а затем буфер «очищается», отправляя собранные данные следующему компоненту. Аналогичным образом, другой компонент может «ожидать в буфере», пока не будет доступен для ввода полный фрагмент данных или достаточное количество данных для эффективной обработки.

В C ++ std::basic_filebuf реализует буфер над файлом файловой системы Он хранит до фиксированного числа байтов, поэтому операционная система всегда работает с минимальным размером транзакции, в то время как программа может получить доступ к отдельным символам при желании.

Увидеть Википедия.

1

Другие решения

Буферизация использует память (пользовательскую память) вместо отправки данных прямо в ОС (т.е. на диск). Экономит на переключении контекста.

1

Вот концепция. Представьте, что у вас есть приложение, которое должно записывать данные на жесткий диск. Допустим, он хочет что-то записывать (например, обновлять файл журнала) каждые полсекунды. Это хорошо? Нет, и вот причина.

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

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

1
По вопросам рекламы [email protected]