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



 

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


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

 

 

Рис. 12.3. Метод связного спискас использованием таблицы в оперативной памяти

 

Индексные узлы

 

Наиболее распространенный метод выделения файлу блоков диска - связать с каждым файлом неболь-шую таблицу, называемую индексным узлом (i-node), которая перечисляет атрибуты и дисковые адреса блоков файла (см. рис12.4). Запись в директории, относящаяся к файлу, содержит адрес индексного бло-ка. По мере заполнения файла указатели на блоки диска в индексном узле принимают осмысленные зна-чения.

 

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

 

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


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

 

Рис. 12.4. Структура индексного узла

 

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

 

Управление свободным и занятым дисковым пространством

 

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

 

Учет при помощи организации битового вектора

 

Часто список свободных блоков диска реализован в виде битового вектора (bit map или bit vector). Каж-дый блок представлен одним битом, принимающим значение 0 или 1, в зависимости от того, занят он или свободен. Hапример, 00111100111100011000001 ... .

 

Главное преимущество этого подхода состоит в том, что он относительно прост и эффективен при нахо-ждении первого свободного блока или n последовательных блоков на диске. Многие компьютеры имеют инструкции манипулирования битами, которые могут использоваться для этой цели. Hапример, компью-теры семейств Intel и Motorola имеют инструкции, при помощи которых можно легко локализовать пер-вый единичный бит в слове.

 

Описываемый метод учета свободных блоков используется в Apple Macintosh.

 

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


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

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






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