Где находятся буферы? - PullRequest
       13

Где находятся буферы?

0 голосов
/ 06 января 2012

Я много слышу о очищающих буферах , отправке в буфер и т. Д., Но у меня нет визуального представления о том, где находятся буферы и как они выглядят.

Являются ли буферы частью ядра ОС или частью каждого процесса?Если первый случай, могут ли одни и те же буферы использоваться несколькими процессами?

1 Ответ

2 голосов
/ 12 марта 2012

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

Вв случае «сбрасывающих» буферов это обычно используется в контексте отправки данных в файл или в сеть;буфер в этом случае используется для объединения нескольких небольших записей в файл или сеть в один больший и более эффективный для передачи буфер.После выполнения окончательной записи (или после некоторой точки «фиксации») буфер должен быть «очищен», чтобы гарантировать, что любые данные, оставшиеся в ожидании слияния с будущей записью, будут зафиксированы немедленно в основном файле, отправленном по сети, а неосталось ждать будущей записи, которая может никогда не произойти.

Как в случае сетевого, так и файлового ввода-вывода буферы обычно используются в нескольких местах.Файловый ввод-вывод вполне может быть буферизован буфером в приложении, в библиотеке (например, реализация fwrite может буферизовать вывод), в ядре и даже на самом устройстве - сетевые записи могут быть буферизованы устройством во время ожиданияпропускная способность на проводных и жестких дисках будет буферизовать выходные данные ОС, чтобы гарантировать, что данные не будут потеряны, поскольку физические диски вращаются в правильное положение для записи.

...