Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1.docx
Скачиваний:
21
Добавлен:
12.02.2016
Размер:
1.06 Mб
Скачать

Реалізація файлової системи Структура файлової системи

Файлові системи зберігаються на дисках. Більшість дисків може бути розбита на один або кілька розділів, на кожному з яких буде незалежна файлова система. Сектор 0 на диску називається головним завантажувальним записом - MBR (Master Boot Record) і використовується для завантаження комп'ютера. Наприкінці MBR міститься таблиця розділів. З цієї таблиці беруться початкові і кінцеві адресакаждого розділу. Один з розділів в цій таблиці позначається активним. При завантаженні комп'ютера BIOS (базова система введення-виведення) зчитує і виконує MBR. Перше, що робить програма MBR, - знаходить розташування активного розділу, зчитує його перший блок, який називається завантажувальним, і виконує його. Програма в завантажувальному блоці завантажує операційну систему, що міститься в цьому розділі. Для досягнення однорідності кожен розділ починається з завантажувального блоку, навіть якщо він не містить операційної системи. Крім того, в майбутньому він може містити якусь операційну систему. У всьому іншому, крім того, що розділ починається з завантажувального блоку, будова дискового розділу сильно відрізняється від системи до системи. Найчастіше файлова система буде містити деякі елементи, показані на рис. 4.6.

Першим елементом є суперблоки. У ньому містяться всі ключові параметри файлової системи, які зчитуються в пам'ять при завантаженні комп'ютера або при першому зверненні до файлової системи. Зазвичай в інформацію суперблоку включається «магічне» число, що дозволяє ідентифікувати тип файлової системи, кількість блоків у файловій системі, а також інша важлива адміністративна інформація.

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

Реалізація файлів Неперервне розміщення

Розміщення з використанням зв'язаного списку

Розміщення з використанням зв'язаного списку – це метод зберігання файлів, що полягає в представленні кожного файлу у вигляді зв'язаного списку дискових блоків. Перше слово кожного блоку використовується в якості покажчика на наступний блок, а вся інша частина блоку призначається для зберігання даних (рис. 5.3).

Рис. 5.3. Зберігання файлу у вигляді зв'язаного списку дискових блоків

Цей підхід має наступні переваги:

  1. В цьому методі може бути використаний кожен дисковий блок. При цьому втрати дискового простору на фрагментацію відсутні (за винятком внутрішньої фрагментації в останньому блоці).

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

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

  1. Довільний доступ є занадто повільним. Щоб дістатися до блоку n, операційній системі потрібно почати зі стартової позиції і прочитати по черзі n - 1 попередніх блоків.

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

Розміщення з допомогою зв'язаного списку, що використовує таблицю в пам'яті

Обидва недоліки попереднього підходу можуть бути усунені за рахунок вилучення слова покажчика з кожного дискового блоку і приміщення його в таблицю в пам'яті. Така таблиця, що знаходиться в оперативній пам'яті, називається FAT (File Allocation Table - таблиця розміщення файлів). На рис. 5.4 показано, як виглядає таблиця для прикладу на рис. 5.3. Обидві послідовності закінчуються спеціальним маркером (наприклад, -1), який не є допустимим номером блоку і свідчить про закінчення файлу.

Рис. 5.4. Розміщення з допомогою зв'язаного списку, що використовує таблицю розміщення файлів в оперативній пам’яті

Цей підхід має наступні переваги:

  1. Для зберігання даних доступний весь блок.

  2. Спрощується довільний доступ.

  3. Прохід по всіх адресах відбувається без звернення до диску, оскільки вся таблиця знаходиться у пам’яті.

  4. Як і в попередньому методі, в записі каталогу досить зберігати одне ціле число (номер початкового блоку) і як і раніше отримувати можливість визначення розташування всіх блоків незалежно від того, наскільки великим буде розмір файлу.

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

  1. Щоб дістатися до блоку n, операційній системі потрібно почати зі стартової позиції і прочитати всі попередні записи

  2. Основним недоліком цього методу є те, що для його роботи вся таблиця повинна постійно перебувати в пам'яті. Для 200-гігабайтного диска, що має блоки розміром 1Кбайт, потрібна була б таблиця з 200 млн. записів, по одному для кожного з 200 млн. дискових блоків (якщо 1 запис має розмір 4 байти то таблиця займатиму 800 Мбайт).

Розміщення з допомогою і-вузлів

Це метод відстеження приналежності конкретного блоку конкретного файлу за допомогою зв'язування з кожним файлом структури даних, яку називають i-вузлом (index-node - індекс-вузол), що містить атрибути файлу і дискові адреси його блоків. Приклад і-вузла продемонстровано на рис. 5.5.

Рис. 5.5. Приклад і-вузла

Цей підхід в порівнянні з попереднім має наступні переваги:

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

З i-вузлами пов'язана одна проблема, що кожен вузол має простір для фіксованої кількості дискових адрес. Одне з рішень полягає в резервуванні останньої дискової адреси не для блоку даних, а для блоку, що містить додаткові адреси блоків, або побудови цілого ланцюжка адресних блоків.

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