Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
41
Добавлен:
30.04.2013
Размер:
16.33 Mб
Скачать

Логическая файловая система

Хотя доступ к физическим устройствам может осуществляться через их драйверы, более общими предпочтительным механизмом является ис­пользование логической файловой системы (LFS). LFS может быть смон­тирована как обычная файловая система. Это значит, что у всех физиче­ских устройств, входящих в LFS, будет одна структура информации и, сле­довательно, одинаковый доступ к файлам и каталогам. так, например, в настоящее время ОС Linux поддерживает одновременно до пятнадцати файловых систем.

Когда файловая система устройства смонтирована, вся структура устройства становится доступна как подкаталог, начиная от корневого каталога устройства, который становится монтируемым подкаталогом LFS.

Пользователю VFS нет необходимости знать, как реализуется доступ к устройству, так как для него это становится просто подкаталог в LFS. этот уровень абстракции позволяет обеспечить высокую гибкость как в работе с конкретными физическими устройствами, так и с логической файловой системой. А это в свою очередь способствует успешности использования системы Unix.

Системная функция mount (монтировать) связывает файловую систему из указанного раздела на диске с существующей логической файловой сис­темой, а функция umount (демонтировать) исключает файловую систему устройства из LFS. Функция mount, таким образом, дает пользователям возможность обращаться к данным, расположенным на некотором диске, как к разделу логической файловой системы, а не как к отдельному уст­ройству.

Синтаксис вызова функции mount: mount(special pathname, directory pathname, options);

где special pathname -имя специaльного файла устройства, соответствующего дисковому разделу с монтируемой файловой системой. Directory pathname - каталог в существующей иерархии, где будет монтироваться файловая система (другими словами, точка или место монтирования). А options указывает, следует ли монтировать файловую систему "только для чтения" (при этом не будут выполняться такие функции, как write() и create(), которые производят запись в файловую систему). Например, если процесс вызывает функцию mount следующим образом: mount ("/dev/dskl ", "/usr",0); ядро присоединяет файловую систему, находящуюся в дисковом разделе с именем "/dev/dskl", к каталоту "/usr" в существующем дереве файловых систем.

Физическая организация файловой системы

Физическая организация файловой системы на диске показана на рис. 3.10 и включает:

Загрузочный блок - самый первый блок диска (блок 0) содержит ин­формацию, необходимую для первоначальной загрузки ОС. Блок загрузки располагается в начале пространства отведенного под файловую систему, обычно в первом секторе, и содержит программу начальной загрузки, ко­торая считы вается в машину при загрузке или инициализации операцион­ной системы. Хотя для запуска системы требуется только один блок за­грузки, каждая файловая система имеет свой (возможно даже пустой) блок загрузки.

Суперблок (super_bоск): Фактически первый блок локальной файловой системы каждого конкретного устройства, который содержит информацию обо всей файловой системе устройства и о точке монтирования файловой

Суперблок состоит из следующих полей:

  • размер файловой системы,

  • количество свободных блоков в файловой системе,

  • список свободных блоков, имеющихся в файловой системе,

  • индекс следующего свободного блока в списке свободных блоков,

  • размер списка индексов, количество свободных индексов в файловой системе,

  • список свободных индексов в файловой системе,

  • следующий свободный индекс в списке свободных индексов,

  • заблокированные поля для списка свободных блоков и свободных индексов,

  • флаг, показывающий, что в суперблок были внесены изменения.

I узлы (i-node): I-узлы представляют собой последовательность блоков, расположенную за суперблоком, каждый из которых содержит ссылки на просто блоки. В ОС i-узел является также структурой данных в памяти Вычислительной системы, которая необходима ядру для выполнения операций обмена данными с устройствами. Один i-узел может быть использован несколькими процессами. В i-узле хранится вся информация, которая не­обходима ядру для работы с файлом. Дисковые индексные узлы включают в себя следующие поля:

Идентификатор владельца файла. Права собственности разделены между индивидуальным владельцем и "групповым" и тем самым помогают определить круг пользователей, имеющих права доступа к файлу. Супер­пользователь имеет право доступа ко всем файлам в системе.

Тип файла. Файл может быть файлом обычного типа, каталогом, специ­альным файлом, соответствующим устройствам ввода-вывода символами или блоками, а также абстрактным файлом канала (организующим обслуживание запросов в порядке поступления, "первым пришел - первым вы -шел"). Вообще говоря, в Unix существуют восемь типов файлов:

  • Обычные файлы;

  • Каталоги;

  • Специальные файлы бит-ориентированных устройств;

  • Специальные файлы байт-ориентированных устройств;

  • Специальные файлы для работы в сети - сокеты;

  • Жесткие ссылки;

  • Гибкие ссылки (псевдонимы);

  • Каналы (именованные каналы ).

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

Календарные сведения, характеризующие работу с файлом: время вне­сения последних изменений в файл, время последнего обращения к файлу, время внесения последних изменений в индекс.

Число указателей на файл, означающее количество имен, используе­мых при поиске файла в иерархии каталогов.

Таблица адресов на диске, в которых располагается информация файла. Хотя пользователи трактуют информацию в файле как логический поток байтов, ядро может расположить эти данные в несоприкасающихся диско­вых блоках. Дисковые блоки, содержащие информацию файла, указывают­ся в индексе.

Размер файла. Данные в файле адресуются с помощью смещения в бай­тах относительно начала файла, начиная со смещения, равного 0, поэтому размер файла в байтах на 1 больше максимального смещения. Например, если пользователь создает файл и записывает только 1 байт информации по адресу со смещением 1000 от начала файла, размер файла составит 1001 байт. В индексе отсутствует составное имя файла, необходимое для осуще­ствления доступа к файлу.

Информационные блоки - физические блоки занимают оставшееся место на физическом устройстве. В этих блоках хранится находящаяся в файлах информация. Отдельно взятый информационный блок может при­надлежать одному и только одному файлу в файловой системе.