Растровые изображения свободного пространства - это один из методов, используемых для отслеживания выделенных секторов некоторыми файловыми системами. Хотя самый упрощенный дизайн крайне неэффективен, некоторые современные файловые системы используют расширенные или гибридные реализации растровых изображений свободного пространства.
Простая форма свободного пространства растрового изображения является битовым массивом, то есть блок бит. В этом примере ноль указывает на свободный сектор, а единица указывает на используемый сектор. Каждый сектор будет иметь фиксированный размер. В целях пояснения мы будем использовать жесткий диск объемом 4 ГБ с 4096- байтовыми секторами и предположим, что само растровое изображение хранится в другом месте. Для примера диска потребуется 1 048 576 бит, по одному на каждый сектор, или 1 МБ. Увеличение размера диска пропорционально увеличит размер битовой карты, в то время как умножение размера сектора приведет к пропорциональному уменьшению.
Когда операционной системе (ОС) необходимо записать файл, она будет сканировать растровое изображение, пока не найдет достаточно свободных мест, чтобы поместиться в файл. Если бы файл размером 12 КБ был сохранен на примере диска, были бы найдены три нулевых бита, заменены на единицы, и данные будут записаны в трех секторах, представленных этими битами. Если бы файл был впоследствии усечен до 8 КБ, бит последнего сектора был бы установлен обратно в ноль, указывая, что он снова доступен для использования.
По мере увеличения размера диска время, необходимое для поиска свободного места, может стать неоправданным. Чтобы решить эту проблему, реальные реализации растровых изображений свободного пространства найдут способы централизовать информацию о свободном пространстве. Один из подходов - разбить растровое изображение на множество частей. Затем в отдельном массиве хранится количество свободных секторов в каждом фрагменте, поэтому фрагменты с недостаточным пространством можно легко пропустить, а общий объем свободного пространства легче вычислить. Теперь поиск свободного места влечет за собой поиск в сводном массиве, а затем поиск в соответствующем фрагменте растрового изображения точных доступных секторов.
Такой подход резко снижает затраты на поиск свободного места, но не помогает в процессе его освобождения. Если объединенный размер сводного массива и растрового изображения больше, чем может быть легко сохранен в памяти, и большое количество файлов с разбросанными секторами освобождается, требуется огромный доступ к диску, чтобы найти все сектора, уменьшить счетчик сводки и переверните биты обратно в ноль. Это значительно снижает преимущества растрового изображения, поскольку оно больше не выполняет свою функцию быстрого суммирования свободного пространства без чтения с диска.