Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kompyuterni_sistemi_lektsiyi_1_1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
241.66 Кб
Скачать

16 Фізична організація файлових систем

На логічному рівні ОС працює з жорстким диском на рівні кластерів. Кластер — це об’єднання декількох секторів і являє собою найменшу адресовану комірку пам’яті на рівні ОС. Розмірність кластера залежить від типу файлової системи, а також може бути задана користувачем. Процедура розбиття на кластери називається логічним форматуванням. Також під час логічного форматування записується службова інформація щодо файлової системи. Говорять про втрати вільного місця, якщо розмір кластера великий, то швидкість зчитування збільшується ( за 1 раз зчитується більша порція інформації), проте втрати вільного місця досить значні ( розмірність файлу зазвичай не кратна розміру кластера). Якщо розмірність кластера невелика, то втрати мінімальні, проте швидкість зчитування зменшується.

Файлова система FAT (File Allocation Table)

Це найпростіша, проте найненадійніша файлова система. Підтримується ОС Windows, Linux, Mac OS і т.д.

Розмір кластера може бути в межах 512 байт – 64 Кб, проте повинен бути кратним розміру сектора.

Boot

FAT1

FAT2

Root

Data

Розмірність таблиці FAT дорівнює кількості секторів в області даних. Розмірність комірки визначає підтип файлової системи.

FAT12 — 12 біт

FAT16 — 16 біт

FAT32 — 32 біт

Кожна і таблиці відповідає і-му кластеру в області даних.

Комірка таблиці може приймати наступні значення:

0 — відповідний кластер є вільним.

Відповідний кластер зайнятий файлом, тоді в комірці записується номер наступного кластера даних.

Відповідний кластер є неробочий.

FAT2 — це копія FAT1 і використовується виключно лише при пошкодженні першої таблиці.

Кореневий каталог — це набір 32 байтних записів, кожен з яких описує файл кореневого каталогу. В цьому записі зберігає ім’я файлу, номер першого кластеру файлу, його атрибути і т. д. кореневий каталог рівний 64 Кб, а отже більше 512 файлів не може зберігатися. З точки зору каталог — це той самий файл, який містить набір 32 байтних записів, кожен з який описує окремий файл.

При видаленні файлу фізичні дані не видаляються, просто відповідні кластери даного файлу помічаються як пусті.

FAT16 — максимальний розмір кластера 4 Кб, максимальний розмір розділу 4 Гб.

FAT32 — максимальний розмір кластера 32 Кб, максимальний розмір розділу 23232 Кб. В FAT32 не можна записати файл більше

17 Файлова система ntfs (New Technology File System)

Дана файлова система розроблялася для ОС Windows NT, яка в майбутньому стала ядром всіх ОС від Windows. Основні властивості Windows NT:

  1. Підтримка розділів 264 байт;

  2. Можливість відновлення після збоїв та відмов;

  3. Висока швидкість операцій та мала фрагментація.

Структура розділу NTFS

Терміном файлової системи всі дані є файли, навіть весь розділ теж є файлом. Весь розділ NTFS розбивається на кластери, розмір якого зазвичай дорівнює 4 Кб, хоча може бути і змінений. Порядковий номер кластера називається логічним номером кластера LCN (Logical Claster Name). Віртуальним номером кластера VCN (Virtual Claster Name) називається номер кластера в файлі від початку даного файлу. Базова одиниця розподілу дискового простору для NTFS є відрізок. Відрізок — це неперервний блок з k кластерів. Кластер адресується 64-бітним вказівником. Тому 264 * 4 Кб. Тому кожен відрізок, в який входить певний файл, можна характеризувати параметрами (LCN, VCN, k). Основою структури розділу NTFS є таблиця MFT (Master File Table). Дана таблиця являє собою набір записів, кожен з яких відповідає окремому файлу, що розміщується в розділі. Кожен файл ідентифікується порядковим номером в таблиці MFT. Сама таблиця MFT теж є файлом з назвою $MFT. В загальному структура розділу:

Boot-сектор

0

1

2

3

.

.

15

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

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

.

.

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

Файли

BOOT

Файли

Під MFT виділяється 12,5% розділу. Це робиться для того, щоб уникнути дефрагментації MFT файлу, хоча сам файл може бути дефрагментований. Дана область може зменшитися у випадку, якщо все місце для даних буде зайнято. Початок таблиці MFT записується в BOOT секторі по зміщенні 30h. 38h — розмір запису в таблиці MFT. Зазвичай розмір запису рівний 1, 2, 4 Кб (в залежності від розміру розділу — зазвичай 2 Кб). Перші 15 записів в MFT відповідають системним файлам NTFS, які створюються під час форматування. Всі системні файли починаються “$”. 0-ий індекс — $MFT, 1 — $MFT.

Mrr — копія перших 3-х записів

2 — $LogFile

3 — $Volume

4 — $AttrDef — таблиця визначення атрибутів

5 — $ Root — кореневий каталог

6 — $Bitmap — бітова карта зайнятих кластерів

7 — $Boot

8 — $BadCluster — список зіпсованих кластерів

9 — $Quota — квоти на запис певним користувачам

10 — $Upcase — для переходу регістрів символів в Unicode

11-15 — зарезервовані

Кожен файл в файловій системі NTFS ідентифікується викликом номеру в таблиці MFT. Також з кожним файлом пов’язаний набір його атрибутів. До атрибутів відносять: ім’я, його дані, час створення, автор і т. д. Існує перелік наперед визначених атрибутів, хоча користувач може додавати свої.

Кожен файловий запис складається з Header заголовку і набору атрибутів Attribute1…AttributeN, ідентифіковані FFFFFFFFh.

00h 4 сигнатура «File»

04h 2 зміщення номеру послідовності обновлення Update Sequence Number

06h 2 розмір попереднього поля

08h 8 номер послідовності в файлі $LogFile

10h 2 номер послідовності

12h 2 лічильник жорстких посилань

14h 2 зміщення першого атрибуту

18h 4 реальний розмір

1Ch 4 виділений розмір

20h 8 посилання на базовий запис

Зміщення послідовності обновлення завжди дорівнює 002Ah. Це число порівнюється зі значенням 2-х останніх байт в кожному секторі, що належить даному файлу і якщо ці числа не співпадають, вважається, що кластер є зіпсованим і дані є невідповідні. Профіль заголовку може змінюватися в різних ОС і він в явному вигляді ніде не зберігається, проте зберігається номер першого атрибута, який йде одразу за заголовком. Зміщення наступних атрибутів розраховується шляхом додавання зміщення першого атрибуту до розмірів кожного з попередніх атрибутів. Кінець файлового запису — це число.

Атрибут складається з заголовку та тіла атрибуту. Заголовок атрибута завжди зберігається в файловому записі в MFT, тіло в залежності від розміру може зберігатися або в MFT або в області даних. Якщо атрибут зберігається в MFT, його називають резидентним, якщо в області даних, то нерезидентним.

Структура резидентного атрибуту наступна:

00h 4 тип

04h 4 довжина атрибуту

08h 1 флаг резидентності/нерезидентності

09h 1 довжина імені

0Ah 2 зміщення імені

0Ch 2 характеристика атрибуту

0Eh 2 ідентифікатор атрибуту

10h 4 довжина атрибуту без заголовку

18h 2N ім’я атрибуту

Перші 4 байта визначають тип атрибуту. Сам тип в свою чергу визначає представлення атрибуту. Наступні 4 байта містять довжину атрибуту. Для резидентного атрибуту вказується довжина разом заголовка і тіла, для нерезидентних — тільки довжина заголовку. Резидентні і нерезидентні атрибути різняться значеннями по зміщенню 08h. Якщо дорівнює 1, то атрибут є нерезидентним і в кінці заголовку зберігається довжина відрізків (LCN, VCN, k), в якому зберігається значення цих атрибутів. Якщо дорівнює 0, то дані зберігаються в самому атрибуті. Є зміст визначених типів атрибутів.

010h $Standart_Information — стандартна інформація про файл (час створення, права доступу і т. д.)

020h $Attribute_List — список атрибутів

030h $File_Name — ім’я файлу

080h $Data

І т. д.

Attribute_List — це атрибути списку атрибутів. Використовується в тих випадках, коли всі атрибути файлу не поміщаються в базовий файловий запис і потрібно розмістити в декількох записах. Такі записи називають розширеними та індекси зберігаються в атрибутах, які розміщені в базовому записі.

Файли NTFS в залежності від розміщення діляться на невеликі, великі, дуже великі і надвеликі файли. Невеликі файли – це файли, що мають малий розмір і цілком розміщенні в одному записі МFT. Невеликі файли можуть складатися з таких атрибутів:

SI

FN

DATA

SD

SD – Security Description – це атрибут, який визначає права доступу користувачів до даного файлу.

Великі файли. Якщо дані файлу не вміщуються в один запис МFT, цей факт відображається в заголовку атрибуту DATA, який вказує на те, що цей атрибут є нерезидентним. В такому випадку атрибут DATA містить посилання (LCN, VCN, k) на відрізки в області даних, де розміщені відповідні дані файлу.

Дуже великі файли. Якщо файли настільки великі, що його атрибут даних, який зберігає адреси нерезидетнних відрізків даних не вміщується в один запис, то цей атрибут розміщений в іншому записі МFT, а посилання на цей атрибут зберігається атрибуті Attribute List. Сам атрибут даних зберігає адреси нерезидентних відрізків.

Надвеликі файли. В атрибуті Attribute List зберігаються вказівники на декілька записів МFT, в яких зберігається адреси відрізків. Якщо записів в МFT буде недостатньо, можна використати подвійну адресацію (у відрізках даних зберігаються адреси інших відрізків даних).

КАТАЛОГИ

Каталог – це специфікований файл, який містить інформацію про файли, що входять в цей каталог. Файл ідентифікується номером в записі МFT. Структура каталогу відповідає бінарному дереву для швидкого пошуку файлу.

ЖУРНАЛЮВАННЯ

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]