Файлова система FAT
Абревіатура FAT (file allocation table) розшифровується як “таблиця розташування файлів”. Цей термін відноситься до лінійної табличної структури з відомостями про файли — імена файлів, їх атрибути та інші дані, що визначають розташування файлів (або їх фрагментів) у середовищі FAT. Елемент FAT визначає фактичну область диска, в якій зберігається початок фізичного файлу.
В файловій системі FAT логічний дисковий простір будь-якого логічного диска поділяється на дві області (рис.2): системну область і область даних.
R | Sec | Fat1 | Fat2 | Rdir | Каталоги і файли |
Системна область Область даних |
Рис. 2. Структура логічного диска
Системна область логічного диска створюється та ініціалізується при форматуванні, а в подальшому оновлюється при маніпулюванні файловою структурою. Область даних логічного диска вміщує файли і каталоги, підпорядковані кореневому. Вона, на відміну від системної області, доступна через інтерфейс користувача DOS. Системна область складається з наступних компонентів, розташованих у логічному адресному просторі підряд:
- завантажувального запису (boot record, BR);
- зарезервованих секторів (reserved sector, ResSecs);
- таблиці розташування файлів (file allocation table, FAT);
- кореневого каталогу (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; просмотров: 2644;