- •Глава 7. Файловые системы
- •7.1. Иерархическая модель файловой системы
- •7.2. Логическая организация файлов. Интерфейсы
- •7.3. Логическая файловая система. Каталоги
- •7.4. Логическая файловая система. Системные вызовы
- •7.5. Базовая файловая система Дескриптор файла
- •Управление доступом
- •7.6. Физическая структура файлов
- •7.7. Пример
- •7.8. Целостность данных и файловой системы
- •7.9. Загружаемая файловая система
- •Контрольные вопросы
7.9. Загружаемая файловая система
Задачи переносимости программного обеспечения, в том числе и системного, и функционирования программных изделий в среде распределенной обработки данных включают в себя требования к обеспечению единого пользовательского интерфейса различных ФС. Вытекающим отсюда следствием может быть совместное использование в одной операционной среде томов данных, обслуживаемых различными файловыми системами.
Иерархическая структура ФС дает возможность провести в иерархии уровней некоторую разграничительную линию, выше которой будут располагаться абстрактная ФС – структуры данных и алгоритмы, общие для любых ФС, а ниже – конкретная ФС со специфическими структурами и алгоритмами. Наиболее вероятно эта граница может проходить в базовой ФС, связывающей логическое представление файла с его физическим представлением. Такой подход был впервые применен в ОС Unix в связи с концепцией сетевых файловых систем. Проведение разграничительной линии на уровне базовой ФС вызывает расщепление дескриптора открытого файла на две части. Первая часть имеет общий для всех файлов формат и содержит общие для всех файлов поля, обработка которых не зависит от конкретной ФС. Это могут быть поля типа файла, размера, временные отметки и другие данные. Вторая часть – частный дескриптор – для конкретной ФС. В ней содержится план размещения файла, сведения об организации и т.д. Общая таблица томов в ядре указывает для каждого тома тип конкретной ФС, управляющей этим томом. Для каждого типа конкретной ФС ядро хранит таблицу операций – таблицу входных точек процедур, выполняющих для данной ФС стандартные функции (open, close, read и т.д.). При обращении к ФС абстрактная ФС, выполнив общие операции, определяет том и тип конкретной ФС на этом томе, выбирает соответствующую конкретной ФС таблицу входных точек и вызывает требуемую процедуру для конкретной ФС.
В системах с многоуровневыми драйверами драйвер ФС является одним из уровней, которые проходят данные на пути от процесса к устройству. При этом драйвер ФС не зависит не только от верхнего уровня – абстрактной ФС, но и от нижнего уровня – аппаратных драйверов.
Если конкретная ФС удовлетворяет спецификациям, диктуемым общей ФС, то конкретная ФС может быть загружаемой – включаемой в ядро при установке тома, управляемого конкретной ФС.
Контрольные вопросы
Поясните различие между виртуальным и физическим файлом.
Охарактеризуйте основные компоненты иерархической модели файловой системы. Какие преимущества дает иерархическая модель?
В чем различие между байториентированными и записеориентированными файлами? Назовите достоинства и недостатки той и другой модели.
В чем отличие логической структуры каталогов в MD DOS – Windows – OS/2 от структуры каталогов в Unix?
В чем достоинства и недостатки отделения дескриптора файла от элемента каталога?
Какую информацию о файле должен содержать его дескриптор, хранимый в файловой системе? Какую информацию должен содержать дескриптор открытого файла?
В чем сходство и различие каталогов и файлов (на логическом и на физическом уровнях)?
В чем сходство и различие алиасов и косвенных файлов?
Обязательно ли закрытие файла при завершении открывшего его процесса? Обязательна ли запись данных файла на диск при закрытии файла?
В чем отличие смежного размещения файлов в современных файловых системах от смежного размещения файлов в старых файловых системах?
Какими методами может быть обеспечено преимущественно смежное размещение файла на внешней памяти?
В чем отличие целостности файловой системы от целостности данных? Какую целостность, и какими методами обеспечивают современные файловые системы?