Реалізація директорій

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

Для доступу до файлу ОС використовує шлях (pathname), повідомлений користувачем. Запис в директорії зв'язує ім'я файлу або ім'я піддиректорії з блоками даних на диску (див. мал. 12.6). Залежно від способу виділення файлу блоків диска (див. розділ "Методи виділення дискового простору") це посилання може бути номером першого блоку або номером індексного вузла. У будь-якому випадку забезпечується зв'язок символьного імені файлу з даними на диску.

 

Рис. 14.6. Реалізація директорій

Коли система відкриває файл, вона шукає його ім'я в директорії. Потім із запису в директорії або із структури, на який запис в директорії указує, витягуються атрибути і адреси блоків файлу на диску. Ця інформація поміщається в системну таблицю в головній пам'яті. Все подальші посилання на даний файл використовують цю інформацію. Атрибути файлу можна зберігати безпосередньо в записі в директорії, як показано на мал. 12.6. Проте для організації сумісного доступу до файлів зручніше зберігати атрибути в індексному вузлі, як це робиться в Unix.

Розглянемо декілька конкретних прикладів.