HTML, Excel, Word, SEOЖелезо ПК ⇒ Что такое FAT-таблица и кластер

Железо ПК

Что внутри ПК
· Человек и математика
· Какие бывают компьютеры
· Как появился персональный компьютер
· Что такое "открытая архитектура" IBM
· IBM-архитектура
· Закрытая архитектура Apple
· Как работает компьютер
· Системный блок (корпус)
· Блок питания
· Что такое адаптеры
· Как работает клавиатура
· Как появился микропроцессор
· Процессоры i80286 (386) (486)
· Процессоры Pentium 2, Pentium 3
· Процессоры Pentium 4
· Процессоры Celeron
· Процессоры AMD
· Процессоры Athlon
· 64-разрядные Athlon
· Процессоры Duron, Sempron
· Материнская плата
· Разновидности системных плат
· Блок прерываний и CMOS-память
· Чипсет
· Оперативная память
· Как работает динамическая память
· Что такое кэш-память
· Что такое "винчестер"
· Технология SMART
· Какие бывают винчестеры
· Что такое FAT-таблица и кластер

 

Что такое FAT-таблица и кластер


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


Одна часть жесткого диска содержит собственно данные, а вторая часть - сведения о месте хранения этих данных (своеобразная картотека). Для создания логической структуры винчестера служат программы FDISK (создает разделы и логические диски) и FORMAT (организует структуру размещения данных).

Дисковое пространство делится на разделы нескольких типов:

Логической (неделимой) единицей хранения данных на жестком диске является кластер. Все кластеры конкретного винчестера одинаковы по размеру и пронумерованы по порядку. Каждому кластеру соответствует служебная строка, имеющая тот же номер. Совокупность таких служебных строк составляет FAT-таблицу (File Allocation Table) - своеобразный телефонный справочник винчестера. Номер кластера, с которого начинается размещение файла, - является адресом его местонахождения на диске. Строка FAT-таблицы содержит сведения о содержимом "своего" кластера:

Информация на винчестере хранится в виде отдельных файлов. Файлы могут быть разных размеров. Если файл не помещается в один кластер, то он размещается в нескольких кластерах. Если диск первый раз заполняется информацией, то файл будет размещен в смежных кластерах, в виде одного цельного блока. Но, в процессе работы одни файлы удаляются, другие - добавляются. Возникает ситуация, когда для размещения одного файла потребуются кластера в различных областях дискового пространства - в этом случае файл будет состоять из нескольких блоков. В любом случае связь между кластерами и блоками осуществляется при помощи FAT-таблицы, которая "склеивает" файл из кусков. Когда файл пишется на диск, в таблицу FAT заносится начальный адрес местонахождения файла - номер первого кластера из числа тех, которые он будет занимать. Строка FAT-таблицы, содержащая запись кластера, в котором находится начало файла, хранит номер следующего кластера, который содержит продолжение файла и т.д., при помощи такой цепочки ссылок фиксируется расположение всего файла на диске.


Записывая файл на диск, система (если это возможно) размещает его непрерывно - в смежных кластерах. Если этого сделать нельзя, то система ищет необходимое количество свободных кластеров в разных местах дискового пространства и размещает файл в них. Таким образом, файл (особенно, если он больших размеров) может быть "склеен" из нескольких десятков блоков. На емкость диска это никак не влияет, но вот скорость доступа к такому фрагментированному файлу резко падает, поскольку для считывания файла система тратит дополнительные механические (медленные) операции для перемещения считывающих головок с дорожки на дорожку.


При удалении файла в FAT-таблице производятся соответствующие записи - кластера, в которых размещался данный файл, помечаются как свободные, но при этом сама информация в кластере остается до того момента, пока не будет записан новый файл в этот кластер. На этом основана работа некоторых программ по восстановлению удаленной информации.


Разрядность строк FAT-таблицы определяет разрядность адресов, т.е., фактически количество кластеров на жестком диске. Если система оперирует с 16-разрядными строками (в этом случае, говорят о таблице FAT16), то максимально возможное количество кластеров равно 216 = 65535 штук (64 Кб); для 32-рязрядных строк (FAT32) - число кластеров равно 232 = 4294967296 штук (4 Гб).


Это значит, что размер кластера жесткого диска объемом 2 Гб системы FAT16 будет равен: 2 Гб / 64 Кб = 32 Кб (231 / 216 = 215), при этом кластер будет занимать 64 сектора (напомним, что сектор является минимальной единицей хранения информации любого винчестера и содержит, как правило, 512 байт).


Самое интересное в этой ситуации, что жесткий диск объемом более 1 Гб, но до 2 Гб будет иметь точно такой же размер кластера, но их количество будет меньше.


Как мы уже сказали выше - размеры файлов, размещенных на жестком диске могут быть совершенно разные. Если при записи в кластер не хватит места хотя бы для 1 байта, то этот байт будет помещен в следующий свободный кластер. При этом в этот кластер уже ничего записать будет нельзя. Таким образом, чем больше объем винчестера, тем больше размер кластера, тем более неэффективно используется дисковое пространство. Фактический объем винчестера снижается - чем больше объем, тем больше дискового пространства оказывается пустым, при этом его нельзя использовать.


Выход из сложившейся ситуации искали путем разбиения жесткого диска на несколько логических дисков. Каждый логический диск при этом содержал свою FAT-таблицу. Например, разбив винчестер емкостью 2 Гб на два логических диска, размер кластера снижается вдвое - с 32 Кб до 16 Кб.


Более свободно пользователи вздохнули с выходом Windows 98, которая предоставила систему FAT32. Таблица работала с 32-разрядными адресами. Для каждой строки FAT32 отводилось 4 байта. Всего таблица могла хранить адреса 4 294 967 296 кластеров, т.е. 4 Гигабайта кластеров. Размер такой таблицы мог составлять 16 Гб! Совершенно огромная цифра - в начале 21 века и винчестеров-то такого объема не было! Однако, если взять во внимание тот факт, что FAT32 работает с жесткими дисками, объемы которых измеряются сотнями и тысячами Гб, то потеря 16 Гб не выглядит чем-то катастрофическим. Так, например, в системе FAT32 кластер размером 32 Кб (что приведен в примере ранее) будет находиться на диске объемом 32 Терабайта (если я не обшися в расчетах)! Большинство же винчестеров на данный момент (2010 год) работают с 8-ми килобайтными кластерами.



В начало страницы



В начало страницы