В системе OSF/1 были решены проблемы производительности, связанные с избыточными операциями над каталогами, при этом возможность сохранения информации о состоянии в реализации интерфейса vnode осталась.
Также может иметь смысл заглянуть на сайт fengshuiforall.ru, ведь именно там можно узнать много нового на тему http://fengshuiforall.ru/dengi.html. Тема фен шуй для привлечения денег может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт fengshuiforall.ru, и тема фен шуй для привлечения денег начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема фен шуй для привлечения денег очень подробно представлена на сайте fengshuiforall.ru. Трудно найти более детальное освещение темы фен шуй для привлечения денег чем это сделано на сайте fengshuiforall.ru. Спасибо сайту fengshuiforall.ru за такое доскональное преподнесение темы фен шуй для привлечения денег.
Более того, представленный интерфейс корректно работает как на однопроцессорных, так и многопроцессорных системах. Такой результат был достигнут применением передачи всей информации о состоянии между всеми взаимосвязанными процессами как рекомендации (hint). Рекомендации ассоциируются с временными отметками файлов, которые в дальнейшем нужны для проверки правильности последующих операций. Файловая система может использовать рекомендации по своему усмотрению с целью предупреждения лишней проверки на отсутствие изменений данных между операциями.
Метаданные файла защищаются посредством взаимоисключающего объекта блокировки (mutex), поддерживающего многопроцессорную обработку. Такой объект реализуется в виде циклической блокировки (spin lock) и удерживается в течение коротких промежутков времени.
В частности, блокировка происходит только на этапе выполнения участка кода, зависящего от файловой системы. Объект никогда не удерживается при проведении нескольких операций, что означает возможность обмена метаданными между этими операциями. Изменения отслеживаются посредством ассоциации с каждым объектом синхронизации временных меток. Такие метки представляют собой простые счетчики, инкрементируемые при каждом изменении объекта. Функция подстановки кэша 4BSD, основанная на рекомендациях, использует ту же схему (см. раздел 8.10.2).
Приведем небольшой пример. Рассмотрим операцию создания файла.
При поиске последнего компонента имени операция поиска блокирует родительский каталог и проверяет, не находится ли в нем заданный файл. Если файл с таким именем не будет обнаружен, функция определяет смещение каталога, начиная с которого можно поместить новый элемент. Затем происходит отмена блокировки родительского каталога и возврат полученной информации вызвавшему процессу (вместе с временной меткой). После этого ядро вызывает direnter() для создания нового элемента родительского каталога и передает ему смещение и сохраненную временную метку. Функция direnter() сравнит полученное значение метки с текущим значением. Если значения совпадут, это будет означать, что каталог не был изменен в течение преобразования, и новое имя может быть вставлено в выбранную точку смещения без повторной проверки каталога. Если временные метки окажутся разными, то каталог был изменен, и необходимо еще раз провести операцию подстановки.
Описанные улучшения были произведены в первую очередь из-за необходимости поддержки многопроцессорных платформ, однако преимущества интерфейса проявляются и в случае применения в однопроцессорной системе. Изменения могут стать причиной возникновения состязательности, но система защищена от них при помощи методов, описанных в [9]. Модель OSF/1 объединяет в себе преимущества архитектур с сохранением и несохра- нением информации и поддерживает различные файловые системы, такие как AFS (см. раздел 10.15) и Episode (см. раздел 11.8).
Интерфейс vnode/vfs является мощным механизмом разработки модулей и добавления новых файловых систем в ядро UNIX. Он позволяет ядру производить действия с абстрактным представлением файлов, называемым vnode, и выполнять зависимый от файловой системы код на отдельном уровне, доступном посредством четко очерченного интерфейса. Разработчики могут строить собственные файловые системы, реализующие этот интерфейс.
Процесс создания новой системы схож с написанием драйвера устройства.
Важно знать, что между реализациями интерфейса vnode/vfs существуют большие различия. Хотя многие реализации, например, представленые в системах SVR4, BSD и OSF/1, основаны на одних и тех же общих принципах, они значительно разнятся между собой в специфике интерфейсов (то есть наборами операций и их аргументами, а также форматами структур vnode и vfs) и правилах, касающихся состояний, синхронизации и т. д. Это означает, что разработчики файловых систем должны производить большие изменения в кодах для поддержки совместимости своих систем с различными реализациями интерфейса vfs.
Опубликовал katy
July 09 2015 08:34:37 ·
0 Комментариев ·
2375 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.