Книга: Операционная система UNIX
Буферный кэш
Во введении отмечалось, что работа файловой подсистемы тесно связана с обменом данными с периферийными устройствами. Для обычных файлов и каталогов — это устройство, на котором размещается соответствующая файловая система, для специальных файлов устройств — это принтер, терминал, или сетевой адаптер. Не вдаваясь в подробности подсистемы ввода/вывода, рассмотрим, как во многих версиях UNIX организован обмен данными с дисковыми устройствами — традиционным местом хранения подавляющего большинства файлов[48].
Не секрет, что операции дискового ввода/вывода являются медленными по сравнению, например, с доступом к оперативной или сверхоперативной памяти. Время чтения данных с диска и копирования тех же данных в памяти может различаться в несколько тысяч раз. Поскольку основные данные хранятся на дисковых накопителях, дисковый ввод/вывод является узким местом операционной системы. Для повышения производительности дискового ввода/вывода и, соответственно, всей системы в целом, в UNIX используется кэширование дисковых блоков в памяти.
Для этого используется выделенная область оперативной памяти, где кэшируются дисковые блоки файлов, к которым наиболее часто осуществляется доступ. Эта область памяти и связанный с ней процедурный интерфейс носят название буферного кэша, и через него проходит большинство операций файлового ввода/вывода. Схема взаимодействия различных подсистем ядра с буферным кэшем приведена на рис. 4.13.
Рис. 4.13. Роль буферного кэша
- Внутренняя структура буферного кэша
- Кэш-память ЦП
- 9.3.3. Настройка кэша
- 9.3.5. Разделение кэша
- 9.6. Кэширование браузером
- Листинг 11.11. Три полезных способа кэширования графических ресурсов
- Вычисление размера кэша
- Настройка сервера, предназначенного только для кэширования
- Кэширование в SVR4
- Глава 15 Страничный кэш и обратная запись страниц
- Кэш объектов dentry
- Страничный кэш