4. Загальна модель файлової системи

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Роботу будь-якої файлової системи можна представити моделлю, яка складається з багатьох рівнів. Кожен рівень надає набір функцій попередньому рівню, а сам, для виконання своєї роботи звертається з набором запитів до наступного рівня.

Загальна модель файлової системи:

Снимок112.JPG


Символьний рівень. Якщо файл має тільки одне символьне ім'я (наприклад MS-DOS), то у такій файловій системі символьний рівень відсутній, тому що символьне ім'я є унікальним і може бути використане операційною системою(ОС). Якщо файлова система має файл, який може мати кілька символьних імен, то на цьому рівні проглядається ланцюжок каталогів для визначення унікального імені файлу.

Базовий рівень. Характеристики файлу можуть входити до каталогу чи збурігатися в окремих таблицях. Якщо файл відкрити, то його характеристики переміщуються з диска в оперативну пам'ять. Це відбувається для того. щоб зменшити середній час доступу до файлу. Є такі файлові системи (наприклад, HPFS), у яких при відкритті файлу в оперативну пам'ять переміщаються не тільки його характеристики, але й трохи перших блоків файлу, що містять дані. Наступним етапом реалізації запиту до файлу є перевірка прав доступу до нього. Для цього порівнюють повноваження користувача процесу, які видали запит, із списком дозволених видів доступу до цього файлу. Якщо доступ, на який проведено запит, дозволений, то виконання запиту продовжується, якщо ні. то видається повідомлення про порушення прав доступу.

Логічний рівень. На цьому рівні визначаються координати логічного запису у файлі, на який надавався запит. Тобто визначається на якій відстані від початку файлу знаходиться необхідний логічний запис (відстань вимірюється у байтах). Звертається увага на фізичне розташування файлу. Файл представляється у вигляді безепинної послідовності байт. На даному рівні алгоритм роботи залежить від логічної організації файлу.

Наприклад, якщо файл організований як послідовність логічних записів фіксованої довжини 1, то n-a логічний запис має зсув 1(n-1) байт. Для визначення координат логічного запису у файлі з індексно-послідовною організацією виконується читання таблиці індексів (ключів), у якій вказується адреса логічного запису.

Снимок113.JPG

Мал. 2. Функції фізичного рівня файлової сисеми.

Вихідні дані:

V - розмір блоку,

N - номер першого блоку у файлі,

S - зсув логічного запису у файлі.

Потрібно визначити на фізичному рівні:

n - номур блоку, що містить необхідний логічний запис,

s - зсув логічного запису в межах блоку.

n=N+[S/V], де [S/V] - ціла частина числа S/V;

s=R[S/V] - дробова частина числа S/V.

Фізичний рівень. Файлова система визначає номер фізичного блоку, що містить необхідний логічний запис, і зсув логічного запису у цьому блоці. Для вирішення цієї задачі використовують: зсув логічного запису у файлі, адрусу файлу на зовнішньому пристрої, зведення про фізичну організацію файлу, включаючи розмір блоку (все це результати роботи логічного рівня). На малюнку 2 показано роботу фізичного рівня для елементарної фізичної організації файлу у вигляді бузупинної послідовності блоків. Задача фізичного рівня зважується незалежно від того, як був логічно організований фійл.

Пістя того, як було визначено номер фізичного блоку, файлова система звертається до системи вводу-виводу для виконання операції обміну із зовнішнім пристроєм. Отримавши запит у буфер файлової системи передається потрібний блок. У цьому блоці на підставі отриманого при роботі фізичного рівня зсуву вибирається необхідний логічний запис.