Операционная система QNX 4.Архитектура системы

       

Кэш-буфер


Кэш-буфер представляет собой "интеллектуальный" буфер между Администратором файловой системы и драйвером диска. Задача кэш-буфера - хранить блоки файловой системы для того, чтобы минимизировать количество обращений Администратора файловой системы к диску. По умолчанию размер кэш-буфера определяется как некоторый процент от размера всей системной памяти, причем это значение можно изменять опцией в Fsys.

Операции чтения синхронны. Наоборот, операции записи обычно асинхронны. При поступлении данных в кэш-буфер Администратор файловой системы оповещает обслуживаемый процесс о том, что данные записаны. Затем выполняется запись данных на диск, обычно с запаздыванием менее двух секунд.

Программа управления кэш-буфером обычно дает приоритет операциям чтения относительно операций записи. Это правило нарушается только в двух случаях:

  • кэш-буфер близок к заполнению (операциям записи дается такой же приоритет, как и операциям чтения до тех пор, пока не освободится достаточное количество блоков);
  • критичные для файловой системы блоки, такие как блоки битовой карты, блоки каталогов, блоки экстентов и блоки индексных дескрипторов, записываются на диск немедленно и синхронно (эти критичные блоки записываются в обход стандартного механизма записи, включая элеваторный доступ).

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



Содержание раздела