Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
43
Добавлен:
30.04.2013
Размер:
16.33 Mб
Скачать

Структура файла обычного типа

Как уже было отмечено, индексный блок включает в себя таблицу адре­сов расположения информации о файле на диске (смотри рис. 3.11).

Так как каждый блок на диске адресуется своим номером, в этой табли­це хранится совокупность номеров дисковых блоков. Если 6ы данные фай­ла занимали непрерывный участок на диске (то есть файл занимал бы линейную последовательность дисковых блоков), то для обращения к данным в файле было бы достаточно хранить в индексе адрес начального бло­ка и размер файла. Однако такая стратегия размещения данных не позво­ляет осуществлять простое расширение и сжатие файлов в файловой системе без образования фрагментации свободного пространства памяти на диске. Более того, ядру пришлось 6ы выделять и резервировать непрерывное пространство в файловой системе перед выполнением операций, которые приводят к увеличению размера файла.

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

Как уже было отмечено, каждый файл и/или каталог в файловой системе Unix представлен некоторым i-узлом, содержащим указатели на блоки, об­разующие файл. Каждый индексный узел содержит n указателей, причем первые п-3 непосредственно ссылаются на блоки данных файла. Так, если размер блока в файловой системе Unix определен в 512 байт, то для орга­низации файла длиной больше чем (п-3)*512 байт используется п-2 указа­телей i-узла, ссылающийся на косвенный индексный блок из п ссылок

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

Посмотрим, какой максимальной длины можкет достигать файл в файло­вой системе Unix, для чего предположим, что размер блока равен 1 К6айт, тогда:

Таблица 3.1 объем файла в байтах при размере блока 1 Кбайт

Размер

Наименование

Итоговый размер

10 блоков

Блоки прямой адресации по 1 К6 каждый

10 Кбайт

1 блок

Блок косвенной адресации с 256 6локами прямой адресации

256 Кбайт

1 блок

Блок двойной косвенной адресации с 256 блоками косвенной адресации

64 Мбайта

] блок

Блок тройной косвенной адресации с

256 блоками двойной косвенной адресации

16 Г6айт

Как видно из табл. 3.1, максимальный размер файла в файловой системе Unix при размере дискового блока в 1 К6айт составляет 16 Гбайт. несмотря на это, для файловой системы Unix время доступа к данным очень мало и не превышает времени, необходимого на "прохождение" через три индекса. В то время как в файловой системе FAT время доступа к данным может измеряться прохождением через десятки индексов.