Поскольку в FAT16 может адресоваться не более 65536 кластеров, то в ней не может быть больше 65536 записей. При длине одной записи в 16 бит обьем самой FAT16 составит тогда 128 кб.
В файловой системе FAT32 для указания номеров следующих кластеров в файле используется записи длиной в 32 бита. Следовательно, всего в ней может адресоваться 2 32= 4294967296 кластеров. При размере кластера в 32 кб максимальный обьем логического диска с FAT32 составит 2 32*32 кб=131 гб (а размер самой FAT тогда составит 16 гигабайт!), что превышает размеры большинства существующих сейчас моделей винчестеров. Поэтому возможность выделения на логическом диске такого большого количества кластеров используется для того, чтобы уменьшить размер кластера — обычно он для FAT32 составляет 4 кб. Но даже при таком малом размере кластера максимальный обьем логического диска составит 16 гб, поэтому обычно все возможности системы FAT32 не используются и количество кластеров на диске меньше 2 32.
Так как, во-первых, для размещения информации о кластере в FAT32 используется в два раза больше места, чем в FAT16, а, кроме того, количество кластеров при использовании FAT32 бывает куда как больше, чем 65536, например, при размере кластера в 4 кб и размере диска в 8 гб кластеров будет 2147483648, то размер самой 32-разрядной таблицы FAT значительно больше размера 16-разрядной — в данном случае 8 мегабайт против 128 кб. Это, в частности, приводит к тому, что на компьютерах с малым количеством оперативной памяти вся 32-разрядная FAT не умещается в оперативной памяти при ее недостаточном количестве и при работе с файлами операционной системе приходится часто считывать ее нужный фрагмент с диска, что вызывает снижение быстродействия. Кроме того, при большом количестве кластеров таблица FAT занимает весьма много места на диске и тем самым сокращает его полезный обьем, тем более что на диске всегда имеется две ее копии — одна из них резервная. (Именно поэтому обьем установленного в компьютер и отформатированного жесткого диска всегда меньше того обьема, который указывает для него производитель, — потому что некоторую часть диска занимают две копии FAT и некоторая служебная информация.)
С файловой системой FAT32 могут напрямую работать операционные системы Windows (за исключением Windows 3.11 и первых версий Windows95), а также Linux с помощью особых программ.
Информация о типе файловой системы, размере кластера, размере самой таблицы FAT, а также о количестве копий FAT на жестком диске содержится в Boot Record, находящейся сразу перед первой копией FAT.
Проблемы кластерной организации
Потери
Кластерная организация данных на жестком диске, обеспечивая возможность многократного удаления и создания файлов, приводит к двум большим проблемам. Первая — это потери дискового пространства. Так как в подавляющем большинстве случаев размер файлов не кратен размерам кластеров, то последний кластер, помеченный в FAT как принадлежащий какому-либо файлу, оказывается заполненным не полностью. Это место уже не может стать частью другого файла, и поэтому не может быть использовано. Если файлов много, то общее количество такого «потерянного» места становится немалым. Особенно такая потеря проявляется при размещении на жестком диске большого количества мелких файлов, размер которых меньше размера кластера. Так, при размере кластера в 32 килобайта 10 файлов по 3 килобайта займут на жестком диске не 30 килобайт, как могло бы показаться, а 320. В самом крайнем случае для сохранения файла размером один байт операционная система выделит на диске один кластер размером 32 килобайта.
Стоит запомнить, что так как один кластер занимает фиксированный обьем диска (чаще всего это 16 или 32 килобайта) и может содержать не более одного файла, то неизбежны потери пространства диска. Если размер файла меньшеразмера кластера или просто не кратен ему, то в кластере, содержащем этот файл (или окончание файла) останется незанятое пространство.
Информацию о размере кластера и количестве их на диске можно получить, используя программу Scandisk для Windows 95/98 (рис. 8.8).
Рис. 8.8. Информация программы ScanDisk.
Фрагментация
Вторая проблема, вытекающая из принципа кластерной организации — это так называемая фрагментация файлов. Когда файл записывается на диск, то согласно приципам кластерной организации операционная система должна искать первый свободный кластер и записать файл в него и последующие свободные кластеры. Если же кластер, следующий за записываемым, оказывается занят, а файл записан еще не полностью, то операционная система должна повторить поиск первого свободного кластера на последующей части диска и записать файл дальше в найденный свободный кластер и последующие такие же за ним.
Читать дальше