Механизм субаллокации блоков


Ряд современных файловых систем использует механизм, по-английски называемый block suballocation, т.е. размещение частей блоков. В этих ФС кластеры имеют большой размер, но есть возможность разделить кластер на нескольких блоков меньшего размера и записать в эти блоки «хвосты» от нескольких разных файлов. Это, безусловно, усложняет ФС, но позволяет одновременно использовать преимущества, свойственные и большим, и маленьким блокам. Поэтому ряд распространенных ФС, например файловая система Nowell Netware 4.1 и FFS (известная также как UFS иBerkly FS), используемая во многих семействах Unix, применяет этот механизм. Субаллокация требует от файловой системы поддержания запаса свободных блоков на случай, если пользователю потребуется увеличить длину одного из файлов, «хвост» которого был упакован во фрагментированный блок.

Выделение памяти

В простейшей файловой системе каждому файлу выделяется непрерывная область на диске. Благодаря этому в каталоге достаточно хранить адрес первого блока файла и его длину, также измеренную в блоках. В RT-11 поступили еще проще: порядок записей в каталоге совпадает с порядком файлов на диске, и началом файла считается окончание предыдущего файла. Свободным участкам диска тоже соответствует запись в каталоге , при создании файла система ищет первый свободный участок подходящего размера.

Эта простая организация имеет очень серьезные недостатки:

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

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

Для того чтобы решить обе эти проблемы, необходимо позволить файлам занимать несмежные области диска. Наиболее простым решением было бы хранить в конце каждого блока файла указатель на следующий, т.е. превратить файл в связанный список блоков. При этом, естественно, в каждом блоке хранить не 512 байт данных, а на 2 – 4 байта меньше.



Дата добавления: 2016-06-05; просмотров: 1747;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.006 сек.