Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
95 - 141.docx
Скачиваний:
40
Добавлен:
14.04.2019
Размер:
772 Кб
Скачать
☆
  1. Структура файловой системы на диске. Примерная структура файловой системы на диске.

Структура служебных данных типовой файловой системы (например, Unix) на одном из разделов диска может состоять из четырех основных частей.

  • Суперблок;

  • Структуры данных, описывающие свободное дисковое пространство и свободные индексные узлы;

  • Массив индексных узлов;

  • Блоки дисков данных файлов.

В начале раздела находится суперблок, содержащий общее описание файловой системы, например:

  • тип файловой системы;

  • размер файловой системы в блоках;

  • размер массива индексных узлов;

  • размер логического блока.

Описанные структуры данных создаются на диске в результате его форматирования.

Массив индексных узлов (ilist) содержит список индексов, соотв-щих файлам данной файловой системы. Размер массива индексных узлов определяется администратором при установке системы. Максимальное число файлов, которые могут быть созданы в файловой системе, определяется числом доступных индексных узлов.

В блоках данных хранятся реальные данные файлов. Размер логического блока данных может задаваться при форматировании файловой системы. Заполнение диска содержательной информацией предполагает использование блоков хранения данных для файлов директорий и обычных файлов и имеет следствием модификацию массива индексных узлов и данных, описывающих пространство диска. Отдельно взятый блок данных может принадлежать одному и только одному файлу в файловой системе.

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

Для доступа к файлу ОС использует путь (pathname), сообщенный пользователем. Запись в директории связывает имя файла или имя поддиректории с блоками данных на диске. В зависимости от способа выделения файлу блоков диска эта ссылка может быть номером первого блока или номером индексного узла. В любом случае обеспечивается связь символьного имени файла с данными на диске.

Когда система открывает файл, она ищет его имя в директории. Затем из записи в директории или из структуры, на которую запись в директории указывает, извлекаются атрибуты и адреса блоков файла на диске. Эта информация помещается в системную таблицу в главной памяти. Все последующие ссылки на данный файл используют эту информацию. Атрибуты файла можно хранить непосредственно в записи в директории. Однако для организации совместного доступа к файлам удобнее хранить атрибуты в индексном узле, как это делается в Unix.

Рассмотрим несколько примеров реализации директорий в некоторых ОС.

Директории в ОС MS-DOS. В ОС MS-DOS типовая запись в директории имеет вид, показанный на рисунке.

В ОС MS-DOS, как и в большинстве современных ОС, директории могут содержать поддиректории, что позволяет конструировать произвольное дерево директорий файловой системы. Номер первого блока используется в качестве индекса в таблице FAT. Далее по цепочке в этой таблице могут быть найдены остальные блоки.

Директории в ОС Unix. Структура директории проста. Каждая запись содержит имя файла и номер его индексного узла. Вся остальная информация о файле (тип, размер, время модификации, владелец и т. д. и номера дисковых блоков) находится в индексном узле.

В более поздних версиях Unix форма записи претерпела ряд изменений, например имя файла описывается структурой.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]