Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО / ЛАБ_FS_2.doc
Скачиваний:
26
Добавлен:
03.03.2016
Размер:
370.69 Кб
Скачать

2.1 Необхідні дані завантажувального сектора

Область FAT містить одну або кілька структур FAT і починається в секторі, що знаходиться за зарезервованою областю. Її розмір обчислюється множенням кількості структур FAT на розмір однієї структури; обидва значення зберігаються в завантажувальному секторі. Нижче представлені формули по яких обчислюється початок і розмір області FAT.

beginFAT=begin_disk+BOOT.reservsect

size_obl_FAT=k_copy_FAT*size_FAT

де,

beginFAT-початок області FAT (абсолютна адреса)

size_obl_FAT - розмір області FAT

begin_disk - початок логічного диску (абсолютна адреса)

BOOT.reservsect - розмір резервної області

k_copy_FAT - кількість копій FAT

size_FAT - розмір однієї копії FAT

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

Згідно структури логічного диска рис. 2.3 кореневий каталог для FAT32 розміщений в області даних, адреса початку кореневого каталогу зафіксований в BOOT . Для FAT 12/16 кореневий каталог розташовується за областю FAT і має заздалегідь визначений розмір значення якого зазначене в BOOT. Динамічний розмір і місцезнаходження кореневого каталогу дозволяють FAT32 адаптуватися до появи ушкоджених секторів на початку області даних і збільшувати розмір каталогу до необхідного розміру, який визначається за структурою FAT. Нижче приведені формули по яких обчислюється початок кореневого каталогу.

Для FAT12/16

beginROOT=begin_disk+BOOT.reservsect+k_copy_FAT*size_FAT

size_root = k_elem_root*32/size_sekt

size_root - розмір кореневого каталогу

k_elem_root - кількість дескрипторів у кореневому каталозі

size_sekt - розмір одного сектора

Для FAT32

beginROOT=begin_disk+BOOT.reservsect+k_copy_FAT*size_FAT+

+(N_klast-2) * size_klast

N_klast - перший номер кластера кореневого каталогу

size_klast - кількість секторів у кластері

Рис 2.1 Поля завантажувального сектору які використовуються для пошуку кореневого каталогу

3 Дескриптори об’єктів

У дескрипторах об’єктів FAT зберігаються ім'я й дані файлу або каталогу. Ці записи створюються для кожного файлу або каталогу в системі й зберігаються в кластерах, виділених батьківському каталогу . Структура цих записів підтримує короткі імена за схемою 8 + 3 (8 символів імені, 3 символи розширення). Якщо файл має більше складне ім'я, на додаток до звичайного запису каталогу (SFN) створюються записи LFN (Long File Name).У табл. 2.5 приведені поля, що входять у базову структуру дескриптора каталогу.

Таблиця 2.5 Структура дескриптора з коротким іменем

Діапазон

(байти)

Опис

0

перший символ імені файлу

1-10

символи 2-11 імені файлу

11

атрибут файлу

12

Зарезервовано

13

час створення (десяті долі секунди)

14-15

час створення (години, хвилини, секунди)

16-17

дата створення

18-19

дата останнього звертання

20-21

старші 2 байти адреси першого кластера файлу, 0 для FAT12/16

22-23

час останньої модифікації

24-25

дата останнього запису

26-27

молодші 2 байти адреси першого кластеру

28-31

розмір файлу

Перший байт структури даних використається як ознака зайнятого дескриптору. Якщо цей байт дорівнює 0хе5 або 0x00, - запис каталогу вільний. У іншому випадку байт містить перший символ імені файлу. Звичайно імена файлів задаються в кодуванні ASCII, але вони також можуть містити символи національних алфавітів, для чого використаються кодові сторінки Microsoft. Якщо ім'я файлу коротше 8 символів, невикористовуванні байти праворуч заповнюються ASCII-кодом пробілу (0x20). Поле розміру файлу займає 4 байти, отже, максимальний розмір файлу дорівнює 4 Гбайт. У каталогів поле розміру дорівнює 0, і для визначення кількості виділених їм кластерів необхідно використати структуру FAT. Поле атрибутів містить один або кілька прапорів, перерахованих у табл.2.6

Таблиця 2.6 Атрибути файлів

прапорець

Опис

0х01

Доступ тільки для читання

0х02

прихований файл

0х04

системний файл

0х08

мітка тома

0х0f

довге ім'я файлу

0x10

Каталог

0x20

архівний файл

Соседние файлы в папке СПО