The design of the UNIX Operating System 79 страница



 

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

 

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

 

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

 

Реализация директорий

 

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

 

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

 

Рис. 12.6. Реализация директорий

 

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


Основы операционных систем 116

Рассмотрим несколько конкретных примеров.

 

Примеры реализации директорий в некоторых ОС

 

Директории в ОС MS-DOS

 

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

 

 

Рис. 12.7. Вариант записи в директорииMS-DOS

 

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

 

Номер первого блока используется в качестве индекса в таблице FAT. Далее по цепочке в этой таблице могут быть найдены остальные блоки.


Дата добавления: 2021-01-21; просмотров: 127; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!