Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
02.05.2014
Размер:
1.46 Mб
Скачать

Индексные дескрипторы

Индексный дескриптор, или inode, содержит информацию о файле, необходимую для обработки данных т.е. метаданные файла. Каждый файл связан, ассоциирован с одним индексным дескриптором, хотя может иметь несколько имен в файловой системе, каждое из которых указывает на один и тот же индексный дескриптор. При открытии файла ядро помещает копию дискового дескриптора в память в соответствующую таблицу (in-core inode), которая содержит несколько дополнительных полей.

Основные поля дискового индексного дескриптора следующие

di_mode – тип файла, дополнительные атрибуты выполнения и права доступа

di_nlinks – число ссылок на файл, т.е. количество имен, которые имеет файл в файловой системе

di_nid, di_gid – идентификаторы владельца-пользователя и владельца-группы

di_size – размер файла в байтах. Для специальных файлов это поле содержит старший и младший номер устройства

di_atime – время последнего доступа к файлу

di_mtime – время последней модификации

di_etime – время последней модификации индексного дескриптора

di_addr[13] – массив адресов дисковых блоков хранения данных

Каталог

Как уже указывалось метаданные, а тем более блоки хранения данных не содержат имени файла. Имя файла хранится в файлах специального типа – каталогах.

Это позволяет любому файлу иметь теоретически неограниченное число имен в файловой системе.

Каталог файловой системы s5fs представляет собой таблицу, каждый элемент которой имеет размер в 16 байтов: 2 байта хранят номер индексного дескриптора файла, а 14 байт – его имя. Это накладывает ограничение на число индексных дескрипторов, которое не может превышать 65536. Такое ограничение и длина имени файла: его максимальный размер – 14 символов.

Первые два элемента каталога адресует сам каталог (текущий каталог) под именем «.» и родительский каталог под именем «..».

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

Недостатки файловой системы s5fs

Файловая система s5fs привлекательна благодаря своей простоте. Однако обратной стороной медали является низкая надежность и производительность.

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

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

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

Наконец, ограничения, накладываемые на длину имени файла (14 символов) и общее число индексных дескрипторов (65535), также являются слишком жесткими.

Эти недостатки привели к разработке новой архитектуры файловой системы, которая появилась в версии 4.2 BSD UNIX под названием Fast File System или FFS.

Соседние файлы в папке Операционные системы