Відмінності між версіями «4. Загальна модель файлової системи»
Анюта (обговорення • внесок) |
Анюта (обговорення • внесок) |
||
Рядок 11: | Рядок 11: | ||
Наступним етапом реалізації запиту до файлу є перевірка прав доступу до нього. Для цього порівнюють повноваження користувача процесу, які видали запит, із списком дозволених видів доступу до цього файлу. Якщо доступ, на який проведено запит, дозволений, то виконання запиту продовжується, якщо ні. то видається повідомлення про порушення прав доступу. | Наступним етапом реалізації запиту до файлу є перевірка прав доступу до нього. Для цього порівнюють повноваження користувача процесу, які видали запит, із списком дозволених видів доступу до цього файлу. Якщо доступ, на який проведено запит, дозволений, то виконання запиту продовжується, якщо ні. то видається повідомлення про порушення прав доступу. | ||
− | ''Логічний рівень.'' | + | ''Логічний рівень.'' На цьому рівні визначаються координати логічного запису у файлі, на який надавався запит. Тобто визначається на якій відстані від початку файлу знаходиться необхідний логічний запис (відстань вимірюється у байтах). Звертається увага на фізичне розташування файлу. Файл представляється у вигляді безепинної послідовності байт. На даному рівні алгоритм роботи залежить від логічної організації файлу. |
+ | |||
+ | Наприклад, якщо файл організований як послідовність логічних записів фіксованої довжини 1, то n-a логічний запис має зсув 1(n-1) байт. Для визначення координат логічного запису у файлі з індексно-послідовною організацією виконується читання таблиці індексів (ключів), у якій вказується адреса логічного запису. | ||
+ | |||
+ | [[Файл:Снимок113.JPG]] | ||
+ | |||
+ | Вихідні дані: | ||
+ | |||
+ | V - розмір блоку, | ||
+ | |||
+ | N - номер першого блоку у файлі, | ||
+ | |||
+ | S - зсув логічного запису у файлі. | ||
+ | |||
+ | Потрібно визначити на фізичному рівні: | ||
+ | |||
+ | n - номур блоку, що містить необхідний логічний запис, | ||
+ | |||
+ | s - зсув логічного запису в межах блоку. | ||
+ | |||
+ | n=N+[S/V], де [S/V] - ціла частина числа S/V; | ||
+ | |||
+ | s=R[S/V] - дробова частина числа S/V. | ||
+ | |||
+ | ''Фізичний рівень''. Файлова система визначає номер фізичного блоку, що містить необхідний логічний запис, і зсув логічного запису у цьому блоці. Для вирішення цієї задачі використовують: зсув логічного запису у файлі, адрусу файлу на зовнішньому пристрої, зведення про фізичну організацію файлу, включаючи розмір блоку (все це результати роботи логічного рівня). |
Версія за 09:21, 24 квітня 2013
Роботу будь-якої файлової системи можна представити моделлю, яка складається з багатьох рівнів. Кожен рівень надає набір функцій попередньому рівню, а сам, для виконання своєї роботи звертається з набором запитів до наступного рівня.
Загальна модель файлової системи:
Символьний рівень. Якщо файл має тільки одне символьне ім'я (наприклад MS-DOS), то у такій файловій системі символьний рівень відсутній, тому що символьне ім'я є унікальним і може бути використане операційною системою(ОС). Якщо файлова система має файл, який може мати кілька символьних імен, то на цьому рівні проглядається ланцюжок каталогів для визначення унікального імені файлу.
Базовий рівень. Характеристики файлу можуть входити до каталогу чи збурігатися в окремих таблицях. Якщо файл відкрити, то його характеристики переміщуються з диска в оперативну пам'ять. Це відбувається для того. щоб зменшити середній час доступу до файлу. Є такі файлові системи (наприклад, HPFS), у яких при відкритті файлу в оперативну пам'ять переміщаються не тільки його характеристики, але й трохи перших блоків файлу, що містять дані. Наступним етапом реалізації запиту до файлу є перевірка прав доступу до нього. Для цього порівнюють повноваження користувача процесу, які видали запит, із списком дозволених видів доступу до цього файлу. Якщо доступ, на який проведено запит, дозволений, то виконання запиту продовжується, якщо ні. то видається повідомлення про порушення прав доступу.
Логічний рівень. На цьому рівні визначаються координати логічного запису у файлі, на який надавався запит. Тобто визначається на якій відстані від початку файлу знаходиться необхідний логічний запис (відстань вимірюється у байтах). Звертається увага на фізичне розташування файлу. Файл представляється у вигляді безепинної послідовності байт. На даному рівні алгоритм роботи залежить від логічної організації файлу.
Наприклад, якщо файл організований як послідовність логічних записів фіксованої довжини 1, то n-a логічний запис має зсув 1(n-1) байт. Для визначення координат логічного запису у файлі з індексно-послідовною організацією виконується читання таблиці індексів (ключів), у якій вказується адреса логічного запису.
Вихідні дані:
V - розмір блоку,
N - номер першого блоку у файлі,
S - зсув логічного запису у файлі.
Потрібно визначити на фізичному рівні:
n - номур блоку, що містить необхідний логічний запис,
s - зсув логічного запису в межах блоку.
n=N+[S/V], де [S/V] - ціла частина числа S/V;
s=R[S/V] - дробова частина числа S/V.
Фізичний рівень. Файлова система визначає номер фізичного блоку, що містить необхідний логічний запис, і зсув логічного запису у цьому блоці. Для вирішення цієї задачі використовують: зсув логічного запису у файлі, адрусу файлу на зовнішньому пристрої, зведення про фізичну організацію файлу, включаючи розмір блоку (все це результати роботи логічного рівня).