Помощь в написании студенческих работ
Антистрессовый сервис

Архитектура виртуальной файловой системы

РефератПомощь в написанииУзнать стоимостьмоей работы

Интерфейсы VFS имеют большой набор функций для манипулирования потоками информации и структурами данных, особенно для работы с ?-узлами и файлами. Например, интерфейс I узлов содержит следующие функции: Открытие директории для последующего чтения. Например, чтобы перечислить файлы, входящие в каталог, процесс должен его открыть и считать имена всех файлов, которые в нем находятся… Читать ещё >

Архитектура виртуальной файловой системы (реферат, курсовая, диплом, контрольная)

Рассмотрим архитектуру УЕ8, представленную на рис. 4.1.

Архитектура УЕ5 и ее связь с другими подсистемами.

Рис. 4.1. Архитектура УЕ5 и ее связь с другими подсистемами:

Архитектура виртуальной файловой системы. — потоки данных; Архитектура виртуальной файловой системы. — зависимости от;

Архитектура виртуальной файловой системы. — потоки управления Большинство функций файловой системы реализовано (как и функций других подсистем ядра) в виде динамически загружаемых модулей. Это позволяет пользователю ОС сконфигурировать ядро так, чтобы оно занимало минимальное место, а необходимые для выполнения модули загружались по мере их вызова. Например, для печати в UNIX используется специальный драйвер, который обслуживает порт принтера. Этот драйвер загружается динамически только в тот момент, когда необходимо вывести информацию на печать. После окончания печати он выгружается и освобождает память.

В состав виртуальной файловой системы входят следующие блоки:

  • • модули драйверов физических устройств (Device Drivers), каждый из которых поддерживает контроллер конкретного физического устройства. Поскольку существует большое количество обслуживаемых устройств, то есть и большое количество драйверов к ним;
  • • модуль интерфейсов, аппаратно-независимых от устройств (Device Independent Interface), обеспечивает доступ ко всем устройствам в системе;
  • • модуль логической файловой системы (Logical System) объединяет все устройства системы в единую виртуальную файловую систему;
  • • модуль системных интерфейсов, аппаратно-независимых от устройств (System Independent Interface), обеспечивает единый для всех файловых систем доступ к устройствам в системе. Этот модуль представляет все ресурсы физических устройств ОС, используя либо бит-ориентированный, либо байт-ориентированный интерфейсы;
  • • модуль внешнего системного интерфейса (System Call Interface) обеспечивает пользовательским процессам управление и доступ к файловой системе.

Интерфейсы виртуальной файловой системы

Так же как и остальные подсистемы ядра, поддерживает два вида интерфейсов: внешний интерфейс для обслуживания процессов пользователя и внутренний интерфейс для обеспечения взаимодействия с другими подсистемами. Внешний интерфейс обеспечивает для пользователя доступ к файлам и каталогам. К основным файловым операциям ОС иШХ[1] относятся:

  • • создание файла, не содержащего данных;
  • • удаление файла и освобождение занимаемого им дискового пространства;
  • • открытие файла. Цель данного системного вызова — разрешить системе проанализировать атрибуты файла, проверить права доступа к нему и вернуть некоторый числовой параметр для пользовательского обращения к файлу (дескриптор или номер канала);
  • • закрытие файла и освобождение места во внутренних таблицах файловой системы;
  • • позиционирование. Дает возможность специфицировать место внутри файла, откуда будет производиться считывание (или запись) данных, т. е. определить текущую позицию;
  • • чтение данных из файла с текущей позиции. Пользователь должен задать объем считываемых данных и предоставить для них буфер в оперативной памяти;
  • • запись данных в файл с текущей позиции. Если текущая позиция находится в конце файла, то его размер увеличивается, в противном случае запись осуществляется на место имеющихся данных, которые, таким образом, теряются.

Есть и другие операции — внешние, например, переименование файла, получение атрибутов файла и т. п.

Операции над файлами типа open/close/read/write/seek/tell и над каталогами типа readdir/create/unlink/chmod/stat и некоторые другие полностью соответствуют стандарту POSIX систем. При работе с каталогами обычно используются следующие системные операции[2]:

  • • создание каталога. Вновь созданный каталог включает записи с именами «.» и «.», однако считается пустой;
  • • удаление директории. Операция может быть исполнена только над пустым каталогом;
  • • открытие директории для последующего чтения. Например, чтобы перечислить файлы, входящие в каталог, процесс должен его открыть и считать имена всех файлов, которые в нем находятся;
  • • закрытие каталога после ее чтения для освобождения места во внутренних системных таблицах;
  • • поиск. Данный системный вызов возвращает содержимое текущей записи в открытом каталоге. Вообще говоря, для этих целей может использоваться системный вызов read, но в этом случае от программиста потребуется знание внутренней структуры директории;
  • • получение списка файлов в каталоге;
  • • переименование. Имена директорий можно менять, как и имена файлов;
  • • создание файла. При создании нового файла необходимо добавить в каталог соответствующий элемент;
  • • удаление файла — удаление из каталога соответствующего элемента. Если удаляемый файл присутствует только в одной директории, то он вообще удаляется из файловой системы, в противном случае система ограничивается только удалением специфицируемой записи.

Интерфейсы VFS имеют большой набор функций для манипулирования потоками информации и структурами данных, особенно для работы с ?-узлами и файлами. Например, интерфейс I узлов содержит следующие функции:

  • chdir () — сменить директорию;
  • chrootQ — сменить root-директорию;
  • dir () — класс директории;
  • closedir () закрывает дескриптор директории;
  • getcwdQ — получает текущую рабочую директорию;
  • opendir () — открывает дескриптор директории;
  • readdir () — читает вхождение из дескриптора директории;
  • rewinddir () — переходит в начало дескриптора директории;
  • link() / symlink () / unlinkQ / readlink () / follow linkO — управление связями в файловой системе;
  • mkdir () / rmdir () — создание и удаление каталогов;
  • mknod () — создание каталога, специального файла или обычного файла (regular);
  • readpage() / writepage () — чтение или запись страницы физической памяти;
  • smapQ — пометить логический блок файла на физическом устройстве;
  • гепате () — переименовать файл или каталог.

Интерфейс для работы с файлами:

  • ореп () / releaseQ открыть/закрыть файл;
  • readQ / writeQ чтение запись файла;
  • create() — создание файла в каталоге;
  • lookupi) поиск файла в каталоге;
  • select () ~ ожидание, пока свойства файла не изменятся (т.е. файл станет доступным на чтение или запись);
  • heek() / fseek() — поиск в файле по смещению;
  • ттарО отметить регион файла внутри виртуальной памяти пользовательского процесса;
  • fsyncO / fasyncO синхронизация некоторого буфера памяти с физическим устройством;
  • truncate() — установить длину файла равной нулю;
  • permissionO проверка и установка пользовательским процессом свойств файла на выполнение;
  • ioctlO установить атрибуты файла;
  • revalidateO проверить, чтобы вся кэшированная информация была правильной.
  • [1] Finkei R. An Operating Systems Vade Месит.
  • [2] Столлингс В. Операционные системы М.: Вильямс, 2001.
Показать весь текст
Заполнить форму текущей работой