Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модуль 1 Інформатика.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
16 Мб
Скачать
☆
    1. Фізична організація fat

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

  • Завантажувальний сектор містить програму початкового завантаження операційної системи. Вид цієї програми залежить від типу операційної системи, що буде завантажуватися із цього розділу.

  • Основна копія FAT містить інформацію про розміщення файлів і каталогів на диску.

  • Резервна копія FAT.

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

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

Рис. 10. Фізична структура файлової системи FAT

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

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

Індексний покажчик може приймати наступні значення, що характеризують стан пов’язаного з ним кластера:

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

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

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

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

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

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

Досить наочно ідея файлової системи з використанням таблиці розміщення файлів FAT проілюстрована на рис. 11. Видно, що файл з ім’ям MYFILE.TXT розміщається, починаючи з восьмого кластеру. Усього файл MYFILE.TXT займає 12 кластерів. Ланцюжок кластерів для нашого прикладу може бути записаний у такий спосіб; 8, 9, 0А, 0У, 15, 16, 17, 19, 1А, 1У, 1C, 1D. Кластер з номером 18 позначений спеціальним кодом F7 як поганий (bad), він не може бути використаний для розміщення даних. При форматуванні звичайно перевіряється поверхня магнітного диска, і ті сектори, при контрольному читанні з яких відбувалися помилки, позначаються в FAT як погані. Кластер 1D позначений кодом FF як кінцевий (останній у ланцюжку) кластер, що належить даному файлу. Вільні (незайняті) кластери позначаються кодом 00; при виділенні нового кластера для запису файлу береться перший вільний кластер. Оскільки файли на диску змінюються – віддаляються, переміщаються, збільшуються або зменшуються, – то згадане правило виділення першого вільного кластера для нової порції даних приводить до фрагментації файлів, тобто дані одного файлу можуть розташовуватися не в суміжних кластерах, а в дуже віддалених один від олного, формуючи складні ланцюжки. Природно, що це приводить до істотної затримки при роботі з файлами.

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

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

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

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

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

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

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

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

Файлові системи FAT12 і FAT16 оперували з іменами файлів, що складаються з 12 символів за схемою “8.3”. У версії FAT16 операційної системи Windows NT був введений новий тип запису каталогу - “довге ім’я”, що дозволяє використовувати імена довжиною до 255 символів, причому кожний символ довгого ім’я зберігається у двухбайтному форматі Unicode. Ім’я за схемою “8.3”, назване тепер коротким (не потрібно плутати його з простим ім’ям файлу, яке іноді називають коротким), як і раніше зберігається у 12-байтовому полі імені файлу в запису каталогу, а довге ім’я міститься порціями по 13 символів в одному або кількох записах, що випливають безпосередньо за основним записом каталогу. Кожний символ у форматі Unicode кодується двома байтами, тому 13 символів займають 26 байт, а ще залишилися 6 відведені під службову інформацію. Таким чином, у файлу з’являються два імені – коротке, для сумісності із старими додатками, що не розуміють довгих імен в Unicode, і довге, зручне у використанні ім’я. Файлова система FAT32 також підтримує короткі й довгі імена.

Файлові системи FAT12 і FAT16 мають велике поширення завдяки їхньому застосуванню в операційних системах MS-DOS і Windows 3.х – самих масових операційних системах першого десятиліття ери персональних комп’ютерів. З цієї причини ці файлові системи підтримуються сьогодні й іншими ОС, такими, як UNIX, OS/2, Windows NT/2000 і Windows 95/98. Однак через постійно зростаючі обсяги жорстких дисків, а також зростаючі вимоги до надійності ці файлові системи швидко витісняються як системою FAT32, що вперше з’явилася в Windows 95 OSR2, так і файловими системами інших типів.