Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sam_R_OS.doc
Скачиваний:
7
Добавлен:
19.11.2019
Размер:
5.27 Mб
Скачать

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

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

Нова файлова система має багаторівневу структуру (малюнок 2.39), на верхньому рівні якої розташовується, так названий, перемикач файлових систем (у Windows 95, наприклад, такий перемикач називається встановлюваним диспетчером файлової системи - installable filesystem maneger, 1FS). Він забезпечує інтерфейс між запитами додатка і конкретною файловою системою, до якої звертається цей додаток. Перемикач файлових систем перетворює запити у формат, що сприймається наступним рівнем – рівнем файлових систем.

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

Мал. 2.39. Архітектура сучасної файлової системи

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

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

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

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

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