Файлова система FAT

 

Файлова система FAT являє собою таблицю розміщення файлів, в якій зазначаються:

Ø безпосередньо адреси ділянок логічного диска, призначені для розміщення файлів;

Ø вільні області дискового простору;

Ø дефектні області диска.

 

У цій таблиці кожного блоку, призначеному для зберігання даних, відповідає 16-бітове значення. Якщо блок вільний, то значення буде нульовим. Якщо ж блок належить файлу, то значення дорівнює адресою наступного блоку цього файлу. Якщо це останній блок у файлі, то значення - OxFFF (рис. 2). Існує також спеціальний код для позначення поганого блоку, не читається через дефект фізичного носія. У каталозі зберігається номер першого блоку і довжина файлу, вимірювана в байтах. Ємність диска при використанні 12-бітової FAT обмежена 4096 блоками (2 Мбайт), що прийнятно для дискет, але зовсім не годиться для жорстких дисків та інших пристроїв великої ємності. На таких пристроях DOS використовує FAT з 16-бітовими елементами. На ще більших (більше 32 Мбайт) дисках DOS виділяє простір не блоками, а кластерами з декількох блоків.

Рис. 2 Структура файлової системи FAT

 

У таблиці FAT кластери, що належать файлу або каталогу, зв'язуються в ланцюжки. У 16-розрядної FAT можна мати до 65536 кластерів. В операційних системах Windows NT / 2000 / XP розділи FAT можуть мати до 4097 Мб. У цьому випадку кластер займає 128 секторів диска.

Логічне об'єднання секторів у кластери дозволяє зменшити розмір таблиці FAT і прискорити доступ до файлу. Однак занадто великий розмір кластера приводить до неефективного використання області даних, особливо при великій кількості малих файлів. Наприклад, при розмірі кластера в 32 сектора (16 Кб) середня величина втрат на файл становить 8 Кб. Тому в сучасних файлових системах розмір кластера не перевищує 4 Кб.

Оскільки файли на диску схильні до зміни (видаляються, переміщуються, збільшуються чи зменшуються), то виділення першого вільного кластера для нової порції даних призводить до фрагментації файлів. Дані одного файлу можуть розташовуватися не в суміжних кластерах, а у віддалених один від одного.

Таблиця FAT є основою даної файлової системи, тому вона зберігається на диску у двох примірниках. Оновлюються копії FAT одночасно, а для роботи використовується тільки перший примірник. Якщо він виявиться пошкодженим, то відбудеться звертання до другого екземпляру. Утиліти перевірки та відновлення файлової системи при виявленні невідповідності первинної та резервної таблиці FAT здійснює відновлення основної таблиці, використовуючи дані з її копії.

Система FAT дуже проста і має одне серйозне гідність: вроджену стійкість до збоїв. У той же час у неї є і ряд серйозних недоліків. Перший недолік полягає в тому, що при кожній операції над файлами система повинна звертатися до FAT. Це призводить до частих переміщень головок дисководу і в результаті до різкого зниження продуктивності. Дійсно, виконання програми на одній і тій же машині під MS DOS і під DOS-емулятором систем U NIX або OS / 2 розрізняється по швидкості майже в 1,5 рази. Особливо це помітно при архівуванні великих каталогів.

Файлова система FAT 16, може мати не більше 65535 кластерів на логічний диск, і це призводить до обмеження розміру логічного диска. Зі збільшенням розміру диска доводиться збільшувати розмір кластерів, що призводить до вкрай неефективного і марної витрати дискового простору.

У файловій системі FAT дисковий простір логічного диска ділиться на системну область і область даних. Системна область створюється і ініціалізується при форматуванні диска, а в подальшому оновлюється при роботі. Область даних містить файли і каталоги, які утворюють на диску ієрархічне дерево каталогів, з єдиною директорією не входить в інші - кореневим каталогом. Область даних доступна через користувальницький інтерфейс операційної системи. Системна область містить завантажувальну запис, зарезервовані сектора, таблицю розміщення файлів і кореневий каталог. Для кожного файлу та каталогу у файловій системі зберігається довідкова інформація. Кожен елемент такого довідника займає 32 байти і містить: ім'я файлу або каталогу, розширення імені файлу, атрибути файлу - системний, архівний, тільки для читання та ін, дату і час створення і останньої зміни файлу, номер початкового кластера, розмір файлу.