double arrow

Реализация файлов

Структура файловой системы.

Большинство дисков делятся на несколько разделов с независимой файловой системой на каждом. Нулевой сектор диска называется главной загрузочной записью MBR - Master Boot Record и используется для загрузки. В конце главной загрузочной записи содержится таблица разделов, в которой хранятся начальные и конечные блоки каждого раздела. В MBR могут храниться данные 4 разделов. Один из разделов помечен в таблице как активный. При загрузке биос исполняет загрузочный код MBR, который определяет активный раздел, считывает с него первый сектор, который называется загрузочным, и исполняет его.

Строение раздела диска различно для каждой файловой системы.

Реализация файлов

Непрерывные файлы. Представляют собой наборы соседних блоков диска. Каждый следующий файл начинается с блока, следующего за последним блоком предыдущего файла. Преимущества системы:

- простота реализации;

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

Недостаток: высокая фрагментированность раздела.

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

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

Связанный список при помощи таблицы в памяти. Оба недостатка предыдущей схемы можно устранить, если адреса следующих блоков хранить в отдельной таблице, загружаемой в памяти. Последний блок цепочки вместо номера следущего блока содержит запрещенное значение. Такая загружаемая в память таблица называется FAT-таблицей (File Allocation Table). При использовании такой схемы, для данных используется весь блок без потерь, увеличивается скорость случайного доступа: не смотря на то, что пройти придется по всей цепочке, она уже хранится в памяти и не потребуется дополнитльной дисковой операции. Недостатком является постоянное нахождение всей таблицы в памяти.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: