Кэш подстановки имен файлов — это основополагающий ресурс ОС, доступный любым реализациям файловых систем, желающим воспользоваться им.
Он представляет собой кэш объектов (построенный по принципу LRU, то есть в порядке «последнего недавно использовавшегося»), содержащих указатель на vnode каталога, имени файла в этом каталоге, а также указатель на vnode для этого файла.
Также может иметь смысл заглянуть на сайт lilove.ru, ведь именно там можно узнать много нового на тему http://lilove.ru/photo/kartinki_na_rabochij_stol/more_1400x1050/morskoj_pejzazh_ostrov_gory/55-0-5881. Тема горы на рабочий стол может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт lilove.ru, и тема горы на рабочий стол начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема горы на рабочий стол очень подробно представлена на сайте lilove.ru. Трудно найти более детальное освещение темы горы на рабочий стол чем это сделано на сайте lilove.ru. Спасибо сайту lilove.ru за такое доскональное преподнесение темы горы на рабочий стол.
Кэш производит быстрое установление местонахождения элементов путем объединения их в хэш-таблице, основываясь на имени текущего файла и каталога.
Если файловая система применяет кэш подстановки имен, то функция lookup (реализующая операцию V0P_L00KUP) станет при поиске нужного имени файла сначала просматривать кэш. Если такой файл будет обнаружен в нем, функция просто увеличит счетчик ссылок на его объекте vnode и завершит выполнение. Такой подход дает возможность найти объект без полномасштабного поиска в каталогах, не производя операции чтения с диска. Применение кэша является удобным, так как многие разработчики программ чаще всего производят одни и те же запросы по отношению к одним и тем же файлам и каталогам. Если компонент не будет найден в кэше, функция продолжит поиск в каталогах диска. После обнаружения компонента на диске функция добавит его в кэш для дальнейшего использования.
Поскольку файловая система может получить доступ к vnode не только при просмотре каталогов, то некоторые из ее действий способны привести к тому, что данные элемента кэша станут неверными. Например, пользователь может отсоединить файл, а ядро, в свою очередь, передать его vnode новому файлу. Если затем произвести поиск старого файла, результатом станет запрос неверного элемента кэша и получение указателя на vnode совершенно другого объекта. Таким образом, становится очевидным, что кэш имен должен обладать некоей методикой проверки правильности вхождений. Кэш подстановки имен реализован как в системе 4.3BSD, так и в ОС SVR4, однако в каждой из них применяются различные средства решения описанной проблемы.
В системе 4.3BSD не используется интерфейс vnode/vfs. Кэш просмотра каталогов хранится в индексном дескрипторе файла, находящемся в памяти. Каждый индексный дескриптор представляет собой сгенерированный номер, также называемый характеристикой (capability), увеличивающийся каждый раз при назначении дескриптора новому файлу. Кэш основан на рекомендациях. При попытке добавления в него файловая система производит копирование генерируемого номера индексного дескриптора файла в этот элемент. Функция обработки кэша сверяет полученный номер с текущим сгенерированным номером индексного дескриптора. Если они не совпадают, это означает, что данный элемент кэша является неверным.
В системе SVR4 каждый элемент кэша удерживает ссылку на vnode кэшируемого файла и освобождает ее, если запись исключается или переназначается. Хотя описанный метод и дает гарантию правильности соответствия записей кэша, он обладает некоторыми недостатками. К примеру, ядро должно поддерживать некоторые неактивные объекты vnode только потому, что существуют элементы кэша, обладающие ссылками на них. Применяемый метод также защищает другие компоненты ядра от получения эксклюзивного права на использование файла или устройства.
Опубликовал katy
July 08 2015 09:30:07 ·
0 Комментариев ·
3548 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.