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

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

Ф

До під-системи вводу\виводу

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

Завдання символьного рівня є визначення по символьному імені файлу його унікального імені. У файлових системах, у який кожний файл може мати тільки одне символьне ім’я, наприклад MSDOS, цей рівень відсутній, так як символьне ім’я привласнене файлу користувачем є одночасно унікальним і може бути використано ОС. В більших файлових системах, у яких той самий файл може мати кілька символьних імен, на даному рівні проглядається ланцюжок каталогів для визначення унікального імені файлу. У файловій системі UNIX, наприклад, унікальним іменем є номер індексного дескриптора файлу.

На наступному, базовому, рівні по унікальному імені файлу визначаються його характеристики: права доступу, адреса, розмір та ін.. При відкритті файлу його характеристики переміщуються з диску в ОП, щоб зменшити середній час доступу до файлу.

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

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

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

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

Сучасні архітектури файлових систем

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

Сучасна файлова система має багаторівневу структуру на верхньому рівні якої розташовується перемикач файлових систем, він забезпечує інтерфейс між запитами додатка і конкретною файловою системою, до якої звертається цей додаток. Перемикач файлових систем перетворить запити у формат, сприйманий наступним рівнем файлових систем. Кожний компонент рівня файлових систем виконаний у вигляді драйвера відповідної файлової системи, і підтримує певну організацію файлової системи. Перемикач є єдиним модулем, що може звертатися до драйвера файлової системи. Додаток не може звертатися до нього прямо. Драйвер файлової системи може бути написаний у вигляді реентерабельного коду, що дозволяє відразу декільком додаткам виконувати операції файлами. Кожний драйвер файлової системи в процесі ініціалізації реєструється в перемикача. передаючи йому таблицю точок входу, які будуть використовуватися при наступних звертаннях до файлової системи. Для виконання совїх функцій. драйвери файлових систем звертаються до підсистеми введення \ виведення, яка утворює наступний шар файлової системи нової архітектури. Підсистема введення \ виведення – це складова частина файлової системи, що відповідає за завантаження, ініціалізацію і керування всіма модулями нижчих рівнів файлової системи. Ці модулі являють собою драйвери портів, які безпосередньо займаються роботою з апаратними засобами. Крім цього, підсистема введення \ виведення забезпечує деякий сервіс драйверам файлової системи, що дозволяє їм здійснювати запити до конкретних пристроїв. Підсистема введення \ виведення повинна постійно знаходитись у пам’яті і організовувати спільну роботу ієрархії драйверів пристроїв. У цю ієрархію можуть входити драйвери пристроїв певного типу: драйвери жорстких дисків, драйвери підтримувані постачальниками, драйвери портів, які керують конкретними адаптерами.

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

Системи введення \ виведення

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