- •Передумови виникнення файлових систем
- •Імена файлів
- •Внутрішня структура файлів
- •Типи файлів
- •Атрибути файлів
- •Операції з файлами
- •Каталоги
- •Системи з однорівневими каталогами
- •Ієрархічні системи каталогів
- •Імена файлів
- •Операції з каталогами
- •Реалізація файлової системи Структура файлової системи
- •Реалізація файлів Неперервне розміщення
- •Реалізація каталогів
- •Типи файлових систем
- •Файлові системи з журнальною структурою
- •Журнальовані файлові системи
- •Віртуальні файлові системи
- •Керування файловою системою
- •Керування дисковим простором
- •Розмір блоку
- •Відслідковування вільних блоків
- •Дискові квоти
- •Резервне копіювання файлової системи
- •Несуперечливість (Однозначність)файлової системи
- •Продуктивність файлової системи Кешування
- •Випереджаюче читання блоку
- •Скорочення обсягу переміщень блоку головок диска
Реалізація файлової системи Структура файлової системи
Файлові системи зберігаються на дисках. Більшість дисків може бути розбита на один або кілька розділів, на кожному з яких буде незалежна файлова система. Сектор 0 на диску називається головним завантажувальним записом - MBR (Master Boot Record) і використовується для завантаження комп'ютера. Наприкінці MBR міститься таблиця розділів. З цієї таблиці беруться початкові і кінцеві адресакаждого розділу. Один з розділів в цій таблиці позначається активним. При завантаженні комп'ютера BIOS (базова система введення-виведення) зчитує і виконує MBR. Перше, що робить програма MBR, - знаходить розташування активного розділу, зчитує його перший блок, який називається завантажувальним, і виконує його. Програма в завантажувальному блоці завантажує операційну систему, що міститься в цьому розділі. Для досягнення однорідності кожен розділ починається з завантажувального блоку, навіть якщо він не містить операційної системи. Крім того, в майбутньому він може містити якусь операційну систему. У всьому іншому, крім того, що розділ починається з завантажувального блоку, будова дискового розділу сильно відрізняється від системи до системи. Найчастіше файлова система буде містити деякі елементи, показані на рис. 4.6.
Першим елементом є суперблоки. У ньому містяться всі ключові параметри файлової системи, які зчитуються в пам'ять при завантаженні комп'ютера або при першому зверненні до файлової системи. Зазвичай в інформацію суперблоку включається «магічне» число, що дозволяє ідентифікувати тип файлової системи, кількість блоків у файловій системі, а також інша важлива адміністративна інформація.
Потім може слідувати інформація про вільні блоках файлової системи, наприклад, у вигляді бітового масиву або списку покажчиків. За нею можуть слідувати i-вузли, масив структур даних, на кожен файл по одній структурі, в якій міститься вся інформація про файл. Потім може розміщуватися кореневої каталог, що містить вершину дерева файлової системи. І нарешті, решта диска містить всі інші каталоги і файли.
Реалізація файлів Неперервне розміщення
Розміщення з використанням зв'язаного списку
Розміщення з використанням зв'язаного списку – це метод зберігання файлів, що полягає в представленні кожного файлу у вигляді зв'язаного списку дискових блоків. Перше слово кожного блоку використовується в якості покажчика на наступний блок, а вся інша частина блоку призначається для зберігання даних (рис. 5.3).
Рис. 5.3. Зберігання файлу у вигляді зв'язаного списку дискових блоків
Цей підхід має наступні переваги:
В цьому методі може бути використаний кожен дисковий блок. При цьому втрати дискового простору на фрагментацію відсутні (за винятком внутрішньої фрагментації в останньому блоці).
В записі каталогу зберігається тільки дискова адреса першого блоку, а вся інша інформація може бути знайдена починаючи з цього блоку.
З іншого боку йому притаманні наступні недоліки:
Довільний доступ є занадто повільним. Щоб дістатися до блоку n, операційній системі потрібно почати зі стартової позиції і прочитати по черзі n - 1 попередніх блоків.
Обсяг сховища даних в блоках вже не кратний степені два, оскільки кілька байтів віднімається покажчиком. Хоча це і не смертельно, але незвичайний розмір менш ефективний, оскільки багато програм ведуть читання і запис блоками, розмір яких кратний степені числа два.
Розміщення з допомогою зв'язаного списку, що використовує таблицю в пам'яті
Обидва недоліки попереднього підходу можуть бути усунені за рахунок вилучення слова покажчика з кожного дискового блоку і приміщення його в таблицю в пам'яті. Така таблиця, що знаходиться в оперативній пам'яті, називається FAT (File Allocation Table - таблиця розміщення файлів). На рис. 5.4 показано, як виглядає таблиця для прикладу на рис. 5.3. Обидві послідовності закінчуються спеціальним маркером (наприклад, -1), який не є допустимим номером блоку і свідчить про закінчення файлу.
Рис. 5.4. Розміщення з допомогою зв'язаного списку, що використовує таблицю розміщення файлів в оперативній пам’яті
Цей підхід має наступні переваги:
Для зберігання даних доступний весь блок.
Спрощується довільний доступ.
Прохід по всіх адресах відбувається без звернення до диску, оскільки вся таблиця знаходиться у пам’яті.
Як і в попередньому методі, в записі каталогу досить зберігати одне ціле число (номер початкового блоку) і як і раніше отримувати можливість визначення розташування всіх блоків незалежно від того, наскільки великим буде розмір файлу.
З іншого боку йому притаманні наступні недоліки:
Щоб дістатися до блоку n, операційній системі потрібно почати зі стартової позиції і прочитати всі попередні записи
Основним недоліком цього методу є те, що для його роботи вся таблиця повинна постійно перебувати в пам'яті. Для 200-гігабайтного диска, що має блоки розміром 1Кбайт, потрібна була б таблиця з 200 млн. записів, по одному для кожного з 200 млн. дискових блоків (якщо 1 запис має розмір 4 байти то таблиця займатиму 800 Мбайт).
Розміщення з допомогою і-вузлів
Це метод відстеження приналежності конкретного блоку конкретного файлу за допомогою зв'язування з кожним файлом структури даних, яку називають i-вузлом (index-node - індекс-вузол), що містить атрибути файлу і дискові адреси його блоків. Приклад і-вузла продемонстровано на рис. 5.5.
Рис. 5.5. Приклад і-вузла
Цей підхід в порівнянні з попереднім має наступні переваги:
i-вузол повинен знаходитись в пам'яті тільки в тому випадку, коли відкрито відповідний файл. У міру зростання розміру диска таблиця FAT зростає пропорційно його розміру, на відміну від цього, для схеми, що використовує i-вузли, потрібен масив в пам'яті, чий розмір пропорційний максимальній кількості одночасно відкритих файлів.
З i-вузлами пов'язана одна проблема, що кожен вузол має простір для фіксованої кількості дискових адрес. Одне з рішень полягає в резервуванні останньої дискової адреси не для блоку даних, а для блоку, що містить додаткові адреси блоків, або побудови цілого ланцюжка адресних блоків.