Адресация блоков файла

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

Размещение данных файла задается списком его блоков.

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

Ключом, задающим подобное расположение служит массив номеров блоков файла, содержащий список из 13 номеров блоков на диске, хранящихся в ИД.

Первые десять указывают на десять блоков некоторого файла.

Если файл занимает более 10 блоков, то 11 элемент указывает на косвенный блок, содержащий до 128 адресов дополнительных блоков файла (это еще 70656 байт).

Большие файлы используют 12-ый элемент, который указывает на блок, содержащий 128 указателей на блоки, каждый из которых содержит по 128 адресов блоков файла.

Еще в больших файлах аналогично используется 13 элемент.

Трехкратная косвенная адресация позволяет создавать файлы длиной (10+128+128*128+128*128*128)*512 байт.

Таким образом,

если файл меньше 512 байт, то необходимо одно обращение к диску,

если длина файла находится в пределах 512-70565 байт, то - два и так далее.

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

При открытиифайла соответствующий ИД считывается в память и системе становятся доступны все номера блоков данного файла.

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

Система фиксирует число открытий данного файла и, когда этот счетчик обнуляется, резидентный образ ИД переписывается на диск. Если при этом изменений в файле не было и не модифицировался ИД, то запись не выполняется.

Указанные особенности существенно влияют на эффективность файловой системы.


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



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