Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Логічна структура диску. файли та каталоги.doc
Скачиваний:
2
Добавлен:
18.11.2019
Размер:
150.02 Кб
Скачать

Структура fat

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

Розроблена Біллом Гейтсом і Марком Макдональдом в 1976-1977 роках. Використовувалася в якості основної файлової системи в операційних системах сімейств DOS і Windows до версії Windows ME.

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

  1. Завантажувальний сектор - містить програму початкового завантаження операційної системи.

  2. Таблиця FAТ - містить в собі інформацію про розміщення файлів і каталогів на диску.

  3. Резервна копія таблиці FAT.

  4. Кореневий каталог - займає фіксовану область розміром в 32 сектора (16 кілобайт), що дозволяє берегти 512 записів про файли і каталоги, так як кожен запис каталогу складається з 32 байт.

  5. Область даних. Призначена для розміщення всіх файлів і всіх каталогів, крім кореневого каталогу.

Файлова система FAT підтримує всього два типи файлів: звичайний файл і каталог та розподіляє пам'ять тільки з області даних, а в якості мінімальної одиниці дискового простору використовує кластер.

Таблиця FAT (як основна копія, так і резервна) складається з масиву індексних покажчиків, кількість яких дорівнює кількості кластерів області даних. Між кластерами і індексними покажчиками є взаємно однозначна відповідність - нульовий покажчик відповідає нульовому кластеру і так далі. Індексний покажчик може приймати такі значення, вони характеризують стан пов'язаного з ним кластера:

  1. кластер вільний (не використовується);

  2. кластер використовується файлом і не є останнім кластером файлу, в цьому випадку індексний покажчик містить номер наступного кластера файлу;

  3. останній кластер файлу;

  4. дефектний кластер;

  5. резервний кластер.

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

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

Розмір таблиці FAT і розрядність використовуваних в ній індексних покажчиків визначається кількістю кластерів в області даних. Для зменшення втрат через фрагментацію кластери бажано робити невеликими, а для скорочення обсягу адресної інформації та підвищення швидкості обміну навпаки - чим більше, тим краще. При форматуванні диска під файлову систему FAT зазвичай вибирається компромісне рішення і розміри кластерів вибираються з діапазону від 1 до 128 секторів, або від 512 байт до 64 кілобайт.

Очевидно, що розрядність індексного покажчика повинна бути такою, щоб у ньому можна було задати максимальний номер кластеру для диска певного обсягу. Існує кілька різновидів FAT, що відрізняються розрядністю індексних покажчиків, яка і використовується в якості умовного позначення: FAT12, FAT16 і FAT32. У файловій системі FAT12 використовуються 12-розрядні покажчики, що дозволяє підтримувати до 4096 кластерів в області даних диска, в FAT16 - 16-розрядні покажчики для 65 536 кластерів і в FAT32 - 32-розрядні для більш ніж 4 мільярдів кластерів.

Форматування FAT12 зазвичай характерно тільки для невеликих дисків обсягом не більше 16 Мбайт, щоб не використовувати кластери більше 4 кілобайт. З цієї ж причини вважається, що FAT16 доцільніше для дисків з об'ємом не більше 512 Мбайт, а для великих дисків краще підходить FAT32, яка здатна використовувати кластери 4 кілобайт при роботі з дисками об'ємом до 8 гігабайт і тільки для дисків більшого обсягу починає використовувати 8 , 16 і 32 кілобайт. Максимальний розмір розділу FAT16 обмежений 4 гігабайт, такий обсяг дає 65 536 кластерів по 64 кілобайта кожен, а максимальний розмір розділу FAT32 практично не обмежений - 232 кластерів по 32 кілобайт.

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

Резервна копія таблиці FAT при будь-яких операціях з файлами завжди синхронізується з основною, тому її не можливо використовувати для відміни помилкових дій користувача. Вона може бути корисна тільки в тому випадку, коли сектори основної пам'яті виявляються фізично ушкодженими і не читаються.

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

Файлові системи FAT отримали велике поширення завдяки їх застосуванню в операційних системах MS-DOS і Windows 3.х - наймасовіших операційних системах першого десятиліття ери персональних комп'ютерів, з цієї причини ці файлові системи розпізнаються і можуть використовуватися практично всіма операційними системами. Однак через постійно зростаючих обсягів жорстких дисків, а також зростаючих вимог до надійності, вони швидко витісняються більш сучасними, наприклад NTFS.