Может производиться на стороне сервера или на стороне клиента.
На стороне сервера файл кэшируется в его памяти. //Практически всегда реализуется
Кэширование на стороне клиента – в памяти клиента.
Модели:
1. Кэширование внутри каждого процесса.
Управляется с помощью библиотеки системных вызовов.
После завершения процесса все модифицированные файлы записываются на заданный сервер.
Используется, если процессор часто открывает/закрывает одни и те же файлы.
2. Кэширование в ядре.
Во всех случая, даже при попадании в КЕШ требуется выполнять системные вызовы, но файлы остаются в КЭШ и после завершения процессов.
3. Использование КЭШ-менеджеров
Это процесс пользовательского уровня, освобождающий ядро от кода файловой системы. В системах с виртуальной памятью страница КЭШ-менеджера фиксируется от вытеснения на диск из-за скорости обработки.
Алгоритмы управления кэшированием:
1. Сквозная запись – когда кэшируемый элемент изменяется, все изменения немедленно отправляются на сервер.
2. Отложенная запись – при модификации клиент помечает, что файл изменен. Все изменения отправляются на сервер вместе раз в определенный промежуток времени.
3. Запись по закрытию – удовлетворяет сессионной семантике.
4. Централизованное управление – файл может быть открыт для чтения сколько угодно раз, но только 1 раз для записи.