11 Файлова система fat
ОРГАНІЗАЦІЯ ЗБЕРІГАННЯ ДАНИХ
НА МАГНІТНИХ ДИСКАХ В СІСТЕМЕFAT
Структура даних на магнітних дисках в сістемеFAT
На дисках є кілька спеціальних областей:
- завантажувальний запис (boot record - блок початкового завантаження);
- таблиця розміщення файлів (file Allocation Table - FAT);
- область користувальницьких файлів.
Найпершу область диска займає завантажувальний запис. При першому зверненні до диска операційна система повинна дізнатися його характеристики. Ця інформація знаходиться в першому секторі диска (доріжка 0, поверхня 0, сектор 1). Завантажувальний запис жорсткого диска містить також дані про розбиття його на логічні розділи. Завантаження зазвичай займає один сектор, але може бути і більше. У разі системного диска комп'ютер поміщає завантажувальний запис в пам'ять і виконує команду переходу до процедури завантаження.
Коли програма записує нові дані в дисковий файл, операційна система повинна знайти на диску вільний сектор. Коли ж програма Новомосковскет дисковий файл, потрібно знайти на диску відповідний сектор, в якому зберігаються дані. Щоб стежити за тим, де знаходяться сектори файлу, на диску є таблиця розміщення файлів FAT.
Число секторів в кластері залежить від типу диска. Зазвичай на гнучкому диску в кластер входить 1 - 2 сектори, на жорсткому диску кластер містить 4 - 64 сектора. Так, для жорсткого диска ємністю 2 Гб кластер дорівнює 32 Кбайта. Однак яким би маленьким не був файл, він все одно займе на диску цілий кластер, і всі невикористовувані в ньому сектори просто пропадуть.
Таблиця розміщення файловFAT
У FAT є елемент для кожного доступного кластера на диску. Елементи FAT показують, чи є кластер зайнятим, вільним, дефектним або зарезервований операційною системою. Дефектні кластери виявляються спеціальними програмами, наприклад FORMAT, NDD і т.д. На диску зазвичай є дві копії FAT. Друга копія передбачалася використовуватися для корекції першої копії FAT в разі її пошкодження. Однак на практиці це не робиться.
Якщо ємність диска не перевищує 10 Мбайт, то довжина елемента FAT становить 12 біт. При ємності диска більше 10 Мбайт довжина елемента FAT дорівнює 16 біт. У Windows 95 використовується FAT, елементи якої мають довжину 32 біта. Значення, які можуть приймати елементи FAT, наведені в табл. 1.
Список кластерів, що утворюють зайняте файлом дисковий простір, називається ланцюгом кластерів.
Перші два елементи FAT (зазвичай відповідні кластерам 0 і 1) зарезервовані для дескриптора носія, який однозначно ідентифікує тип диска. Наступні елементи FAT відповідають кластерам диска, доступним для запису в них файлів користувача. Однак інформації, що зберігається в FAT, недостатньо для пошуку шуканого файлу на диску. Для цього поряд з FAT потрібно використовувати і вміст каталогу диска.
16-бітний елемент FAT
Кінець ланцюга кластерів
Для кожного файлу в каталозі знаходяться ім'я файлу і номер його початкового кластера. В елементі FAT з номеромсодержітся номерследующего кластера шуканого файлу, в елементі FAT з номеромсодержітся номерследующего кластера файлу і т.д. Якщо кластерявляется останнім кластером файлу, то в елементі FAT з номеромбудет міститися індикатор кінця файлу (FFF або FFFF). Таким чином, для знаходження всіх кластерів файлу потрібно знати лише тільки номер першого кластера, який зберігається в каталозі на диску. На рис.1 показано, що файл MYFILE записаний в кластерах 004, 005, 006, 008.
Так як файли на диску можуть зберігатися в різних секторах, далеко розташованих один від одного, то ефективність роботи комп'ютера через це може знижуватися. Щоб підвищити швидкість роботи, можна об'єднати всі розрізнені шматки файлів в єдиний логічний ланцюг. Крім того, якщо всі файли пересунути на початок диска, можна отримати додатковий виграш в продуктивності. Для цього існують спеціальні програми оптимізації дисків.
Каталог файлів знаходиться після завантажувального запису і FAT і містить імена всіх дискових файлів і імена підкаталогів. Загальна кількість елементів каталогу залежить від типу диска. Каталог двосторонніх дискет містить 224 елемента. Каталог жорстких дисків включає 512 елементів. Таким чином, загальна кількість файлів, яке може бути записано в кореневій директорії диска, не може перевищувати максимального числа елементів каталогу. У Windows 95 з появою довгих імен число файлів, які можна зберігати в кореневій папці, ще більш зменшилася. Можлива ситуація, коли 30 файлів з дуже довгими іменами витратять все місце для запису імен файлів в кореневій папці. Рекомендується не створювати багато файлів в кореневому каталозі, а розподіляти їх по іншим підкаталогам (папок).
При створенні файлу час створення поміщається в елемент каталогу. Якщо файл модифікується, то відповідний елемент каталогу також змінюється, запам'ятовуючи час останньої модифікації. Це, однак, не відноситься до елементів підкаталогів. Додавання в підкаталог нових файлів не викликає зміни часу у відповідному елементі підкаталогу.
Вміст кожного елемента каталогу представлено в табл. 2. Поле імені файлу містить до восьми символів. Імена файлів менше 8 байт доповнюються пробілами. При видаленні файлу перший байт імені файлу замінюється символом. (Код E516), і цей елемент каталогу можна використовувати повторно.
Якщо в імені файлу присутні більше восьми символів або в ньому використані прогалини, то система сприймає це ім'я як довге і відводить під нього два і більше елементів. У першому елементі записуються перші вісім символів імені, розширення імені, дата створення та інша інформація про фото. Інша частина імені записується в додаткових елементах, яких може бути до 20.
Так, якщо засобами WINDOWS створити файл з ім'ям PRIMER1.TXT, то для нього в каталозі буде виділено тільки один елемент, тому що його ім'я повністю відповідає вимогам MS DOS. Але якщо створити файл з ім'ям Primer2.txt, в якому частина імені введена малими символами, то під нього буде виділено вже два елементи в каталозі. У першому елементі буде вказано тільки ім'я Primer2.txt і атрибут 0F, а в другому елементі - ім'я цього ж файлу за правилами MS DOS: PRIMER2, його розширення імені: TXT і всі інші характеристики. Однак створити файл з ім'ям Primer1.txt не вдасться, тому що вважається, що це - одне і те ж ім'я, що і PRIMER1.TXT. Таким чином, для WINDOWS величина букв (великі або малі) не має значення, але на екран ім'я файлу виводиться такими символами, які використовувалися при створенні файлу.
Якщо створити файл з ім'ям PRIMER_DLINNOGO_IMENI_FAILA.TXT, то під нього виділяється чотири елементи каталогу. У перших трьох з них буде по частинах зазначено довге ім'я файлу:
Кожен з цих елементів каталогу буде в полі "атрибут" мати значення 0F. У четвертому елементі каталогу буде міститися ім'я файлу, що задовольняє вимогам MS DOS: PRIMER
1. Далі зберігаються розширення імені файлу TXT, його розмір та інші характеристики.
Якщо створити ще один файл з довгим ім'ям PRIMER1_DLINNOGO_IMENI_FAILA.TXT, то під нього також виділиться чотири елементи каталогу і в останньому з них буде записано ім'я PRIMER
Коли подібний файл потрапляє на комп'ютер, що працює в системі MS DOS, то він розпізнається по першим восьми символам імені. Всі інші символи імені ігноруються, але працювати з таким файлом можна. Однак в ряді випадків можуть виникати проблеми при операціях з такими файлами.