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


 

Абревіатура FAT (file allocation table) розшифровується як “таблиця розташування файлів”. Цей термін відноситься до лінійної табличної структури з відомостями про файли — імена файлів, їх атрибути та інші дані, що визначають розташування файлів (або їх фрагментів) у середовищі FAT. Елемент FAT визначає фактичну область диска, в якій зберігається початок фізичного файлу.

В файловій системі FAT логічний дисковий простір будь-якого логічного диска поділяється на дві області (рис.2): системну область і область даних.

R Sec Fat1 Fat2 Rdir Каталоги і файли
Системна область Область даних

Рис. 2. Структура логічного диска

Системна область логічного диска створюється та ініціалізується при форматуванні, а в подальшому оновлюється при маніпулюванні файловою структурою. Область даних логічного диска вміщує файли і каталоги, підпорядковані кореневому. Вона, на відміну від системної області, доступна через інтерфейс користувача DOS. Системна область складається з наступних компонентів, розташованих у логічному адресному просторі підряд:

  1. завантажувального запису (boot record, BR);
  2. зарезервованих секторів (reserved sector, ResSecs);
  3. таблиці розташування файлів (file allocation table, FAT);
  4. кореневого каталогу (root directory, RDir).

Таблиця розташування файлів

Таблиця розташування файлів є важливою інформаційною структурою. Вона являє собою карту (образ) області даних, у якій описується стан кожної ділянки області даних. Область даних розбивають на кластери. Кластер представляє co6ой або декілька суміжних секторів у логічному дисковому адресному просторі (точніше — тільки в області даних). У таблиці FAT кластери, що належать одному файлу (некореневому каталогу), зв'язуються в ланцюжки. Для вказання номера кластера в системі керування файлами FAT-16 використовується 16-бітове слово, отже, можна мати до 216 = 65536 кластерів (з номер 0 до 65535).

Кластер — це мінімальна адресована одиниця дискової пам'яті, що виділяється файлові (або некореневому каталогу). Файл або каталог займає ціле число кластерів. Останній кластер при цьому може бути задіяний не повністю, що приведе до значної втрати дискового простору при великому розмірі кластера. На дискетах кластер займає один або два сектори, а на жорстких дисках — в залежності від обсягу розділу (табл.4 ).

Таблиця 4. Співвідношення між розміром розділу і розміром кластерів у FAT16

Ємність розділу, Мбайт   Кількість секторів у кластері   Розмір кластерів, Кбайт  
16-127      
128-255      
256-511      
512-1023      
1024-2047      

 

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

Логічна розбивка області даних на кластери як сукупності секторів замість використання одиночних секторів має наступний смисл:

- зменшується розмір самої таблиці FAT;

- зменшується можлива фрагментація файлів;

- прискорюється доступ до файлу, тому що в кілька разів скорочується довжина ланцюжків фрагментів дискового простору, виділених для нього.

Однак, занадто великий розмір кластера веде до неефективного використання області даних, особливо у випадку великої кількості маленьких файлів. В середньому на кожний файл втрачається біля половини кластера. З табл. 4 слідує, що при розмірі кластера в 32 сектори (об’єм розділу — від 512 Мбайт до 1023 Мбайт), тобто 16 Кбайт, середня величина втрат на файл складе 8 Кбайт, і при числі файлів у декілька тисяч втрати можуть складати більш 100 Мбайт. Тому в сучасних файлових системах (HPFS, NTFS, FAT32 і деякі інші) розміри кластерів обмежуються (від 512 байт до 4 Кбайт). У FAT32 проблема вирішується за рахунок того, що сама FAT у цій файловій системі може вміщувати до 228 кластерів. Системи керування файлами, створені для Windows 9x і Windows NT, можуть працювати з розділами розміром до 4 Гбайт, на яких установлена система FAT, тоді як DOS з такими розділами працювати не зможе.

Ідея файлової системи з використанням таблиці розміщення файлів FAT проілюстрована рис.3. З цього рисунка видно, що файл з ім'ям MYFILE.TXT розміщується, починаючи з восьмого кластера. Всього файл MYFILE.TXT займає 12 кластерів. Ланцюжок кластерів (chain) для даного прикладу може бути записана в такий спосіб: 8, 9, ОА, 0В, 15, 16, 17, 19, 1A, 1B, 1C, ID. Кластер з номером 18 позначений спеціальним кодом F7 як дефектний (bad), він не може бути використаний для розміщення даних. При форматуванні перевіряється поверхня магнітного диска, і ті сектори, при контрольному читанні з яких відбувалися помилки, позначаються в FAT як дефектні. Кластер ID позначений кодом FF як кінцевий (останній у ланцюжку) кластер, що належить даному файлу. Вільні (незайняті) кластери позначаються кодом 00; при виділенні нового кластера для запису файлу береться перший вільний кластер. Оскільки файли на диску змінюються - видаляються, переміщуються, збільшуються або зменшуються, - то правило виділення першого вільного кластера для нової порції даних приводить до фрагментації файлів, тобто дані одного файлу можуть розташовуватися не в суміжних кластерах, а, іноді, у дуже віддалених один від одного, утворюючи складні ланцюжки. Це приводить до значного уповільнення роботи з файлами.


 

NYFILE.TXT A   Time Date OB Size

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

ID FF FF 0A 0B 15

10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F

F7 1A 1B 1C 1D FF

Рис. 3. Основна концепція FAT

В зв’язку з тим, що FAT використовується при доступі до диска дуже інтенсивно, вона зазвичай завантажується в ОЗП (в буфери вводу - виводу або кеш).

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

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


Таблиця 5. Елемент каталогу

Розмір поля даних, байт   Зміст поля  
  Ім'я файлу або каталогу  
  Атрибути файлу  
  Резервне поле  
  Час створення  
  Дата створення  
  Дата останнього доступу  
  Зарезервовано  
  Час останньої модифікації  
  Дата останньої модифікації  
  Номер початкового кластера в FAT  
  Розмір файлу  

 

Структура системи файлів є ієрархічною. Це ілюструється рис.4, з якого видно, що елементом каталогу може бути файл, який сам, у свою чергу, є каталогом.


 

 

       
   
Ідентифікатор дисководу
 
 

 

 


Рис.4. Структура системи файлів



Дата добавления: 2016-07-27; просмотров: 2559;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.