Разве фрагментация в файловой системе FAT не приводит к неэффективному использованию пространства?
Википедия для статьи о фрагментации говорится:
Во многих случаях фрагментация приводит к тому, что пространство для хранения "теряется", и в этом случае этот термин также относится к самому потерянному пространству. Для других систем (например, файловой системы FAT) пространство, используемое для хранения данных (например, файлов), остается одинаковым независимо от степени фрагментации (от нулевой до крайней).
Означает ли это, что в случае файловой системы FAT пространство памяти не теряется? Если так, то как?
1 ответ
Мне известно, что большинство "нетрадиционных файловых систем Unix" и FAT используют битовый массив выделения для определения свободного места на диске и некоторую форму дескрипторов экстентов файла. Отдельный дескриптор требуется для каждой смежной области для файла. Если файл является смежным, ему нужен только один дескриптор экстента.
В FAT таблица размещения файлов выполняет функцию растрового изображения и дескрипторов в одном. Вместо того, чтобы быть массивом битов, указывающих распределение, он является массивом, содержащим значения (размер зависит от варианта FAT), указывающие использование (например, следующий кластер файла, кластер сбойного диска) соответствующего дискового кластера.
В FAT всегда есть одна n-битная запись для каждого кластера, используемого файлом. Вот почему размер файла остается неизменным независимо от размера файла.
В растровых системах количество служебных данных может быть меньше, чем в FAT.
Означает ли это, что в случае файловой системы FAT пространство памяти не теряется? Если так, то как?
Это зависит от вашей точки зрения. Можно сказать, что FAT всегда тратит пространство.
Я думаю, вы обнаружите, что FAT прост в реализации, но имеет тенденцию к относительно низкой производительности.