Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:



Наши хостеры:

Файловая система ОС UNIX

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

Image

Если при освобождении новых блоков не удается поместить их номера в этом массиве, так как он уже полон (S_NFREE=50), то в этом случае из файловой системы выбирается один свободный блок (при этом он удаляется из списка свободных блоков) и заполненный массив свободных блоков копируется в этот блок. После этого значение указателя НБ обнуляется, а в нулевой элемент массива записывается номер блока, который мы выбрали для копирования в него нашего массива. В итоге, при постоянном освобождении блоков образуется список, в котором будут размещены номера абсолютно всех свободных блоков файловой системы.

Замечание: Т.к. суперблок находится в ОП, то существует возможность быстро занять до 49 свободных блоков. Освобожденные блоки также легко присоединяются к свободным блокам. При таком алгоритме 1-ым используемым блоком будет тот, который последним освободился.

Аналогичный алгоритм используется при работе с ИД.

Лекция №9

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

1.  Поле, определяющее тип файла (каталог или нет) и коды защиты.

2.  Поле, которое содержит количество ссылок к данному индексному дескриптору из всевозможных каталогов файловой системы. Каталог содержит список имен файлов и ссылок на ИД. Одному и тому же ИД может соответствовать несколько имен файлов. Эти имена могут содержаться в произвольных частях ФС. Каждая новая ссылка к ИД фиксируется в этом поле, для того чтобы ФС могла следить за занятостью файла. В корректной ФС количество ссылок в этом поле и число записей, относящихся к данному ИД должно быть одинаково. Как только счетчик в этом поле равен 0, ИД освобождается и присоединяется к пустым ИД. После этого место в памяти освобождается и может быть использовано для других целей.

предыдущаяследующая