Лекция: Общая модель файловой системы

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

Рис. 2.36. Общая модель файловой системы

Задачей символьного уровня является определение по символьному имени файла его уникального имени. В файловых системах, в которых каждый файл может иметь только одно символьное имя (например, MS-DOS), этот уровень отсутствует, так как символьное имя, присвоенное файлу пользователем, является одновременно уникальным и может быть использовано операционной системой. В других файловых системах, в которых один и тот же файл может иметь несколько символьных имен, на данном уровне просматривается цепочка каталогов для определения уникального имени файла. В файловой системе UNIX, например, уникальным именем является номер индексного дескриптора файла (i-node).

На следующем, базовом уровне по уникальному имени файла определяются его характеристики: права доступа, адрес, размер и другие. Как уже было сказано, характеристики файла могут входить в состав каталога или храниться в отдельных таблицах. При открытии файла его характеристики перемещаются с диска в оперативную память, чтобы уменьшить среднее время доступа к файлу. В некоторых файловых системах (например, HPFS) при открытии файла вместе с его характеристиками в оперативную память перемещаются несколько первых блоков файла, содержащих данные.

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

На логическом уровне определяются координаты запрашиваемой логической записи в файле, то есть требуется определить, на каком расстоянии (в байтах) от начала файла находится требуемая логическая запись. При этом абстрагируются от физического расположения файла, он представляется в виде непрерывной последовательности байт. Алгоритм работы данного уровня зависит от логической организации файла. Например, если файл организован как последовательность логических записей фиксированной длины l, то n-ая логическая запись имеет смещение l((n-1) байт. Для определения координат логической записи в файле с индексно-последовательной организацией выполняется чтение таблицы индексов (ключей), в которой непосредственно указывается адрес логической записи.

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

Исходные данные:
V — размер блока
N — номер первого блока файла
S — смещение логической записи в файле

Требуется определить на физическом уровне:

n — номер блока, содержащего требуемую логическую запись

s — смещение логической записи в пределах блока

n = N + [S/V], где [S/V] — целая часть числа S/V
s = R [S/V] — дробная часть числа S/V

На физическом уровне файловая система определяет номер физического блока, который содержит требуемую логическую запись, и смещение логической записи в физическом блоке. Для решения этой задачи используются результаты работы логического уровня — смещение логической записи в файле, адрес файла на внешнем устройстве, а также сведения о физической организации файла, включая размер блока. Рисунок 2.37 иллюстрирует работу физического уровня для простейшей физической организации файла в виде непрерывной последовательности блоков. Подчеркнем, что задача физического уровня решается независимо от того, как был логически организован файл.

После определения номера физического блока, файловая система обращается к системе ввода-вывода для выполнения операции обмена с внешним устройством. В ответ на этот запрос в буфер файловой системы будет передан нужный блок, в котором на основании полученного при работе физического уровня смещения выбирается требуемая логическая запись.

Архитектура ЭВМ включает в себя аппаратуру ввода-вывода, состоящую из иерархической структуры каналов, устройств управления и периферийных устройств (ПУ). ПУ делятся на устройства ввода-вывода и запоминающие устройства. И те, и другие могут осуществлять ввод и/или вывод.

Ввод – это считывание данных с носителей информации в оперативную память. Вывод – перенос данных из ОП на носители информации.

Аппаратура различных ЭВМ существенно отличается по техническим и функциональным характеристикам, часто возникает потребность менять её количество и состав. В составе любой ОС имеется специальная подсистема управления аппаратурой ввода-вывода, избавляющая пользователя от необходимости знания множества деталей взаимодействия между программами и ПУ. Основной задачей этой подсистемы в мультипрограммном режиме является организация двусторонней высокоскоростной передачи данных между ОП и ПУ с целью достижения максимального перекрытия во времени работы аппаратуры ввода-вывода и ЦП. При этом реализуется принцип независимости от устройств, подразумевающий унифицированный интерфейс для доступа к различным по своим физическим характеристикам ПУ.

Несмотря на различия в подсистемах управления вводом-выводом, все ОС включают следующую концепцию: устройства ввода-вывода рассматриваются как совокупность аппаратурных процессоров, способных работать параллельно относительно друг друга и относительно ЦП. На таких процессорах развиваются внешние процессы, взаимодействующие между собой и с программными процессами, при этом скорости развития внешних и программных процессов могут различаться на порядок.

Система управления вводом-выводом (СУВВ) представляет собой один или несколько системных процессов, обеспечивающих информационное и управляющее взаимодействие между внутренними и внешними процессами. Через эту подсистему происходит инициация, управление и уничтожение внешних процессов. С точки зрения программных процессов пользователей СУВВ представляет собой программный интерфейс с необходимыми для них ПУ. В рамках этого интерфейса пользователь формирует запросы на выполнение следующих действий в отношении ПУ:

1) операции чтения и записи данных в отношении адресуемого ПУ;

2) операции управления устройством;

3) операции по проверке состояния устройства.

Большинство компонентов СУВВ «невидимы» для пользователя.

В зависимости от степени автономности от ЦП можно выделить два типа управления ПУ (рис. 2).

Прямойметод основан на непосредственной связи ЦП и ПУ и предполагает наличие в составе команд процессора специальных команд по инициированию работы, проверке готовности, останову, записи информации и т.д. а) б)

Рис 2.Методы управления периферийными устройствами: а)прямой; б)косвенный

 

еще рефераты
Еще работы по информатике