Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1.docx
Скачиваний:
21
Добавлен:
12.02.2016
Размер:
1.06 Mб
Скачать

Реалізація каталогів

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

Можна виділити 2 типи структури каталогів.

Каталоги, які мають структуру першого типу зберігають атрибути файлів безпосередньо в таблиці записів каталогу (рис. 5.6,а). У цій простій конструкції каталог складається зі списку записів фіксованого розміру, по одному запису на кожен файл, в якій міститься ім'я файлу (фіксованої довжини), структура атрибутів файлу, а також один або кілька дискових адрес (аж до деякого максимуму), які повідомляють, де знаходяться відповідні файлу блоки на диску. Така структура каталогів характерна для ОС Windows.

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

Рис. 5.6. Простий каталог, що містить записи фіксованого розміру з дисковими адресами та атрибутами (а), каталог в якому кожен запис сси лається на і-вузол

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

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

Недоліки такого підходу:

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

  2. Який-небудь запис каталогу може виявитися на декількох сторінках пам'яті і при читанні імені файлу може статися помилка відсутності сторінки.

  1. Інший метод реалізації імен файлів змінної довжини полягає в тому, щоб зробити самі записи каталогу фіксованої довжини, а імена файлів зберігати окремо в загальному сховищі («купі») наприкінці каталогу, як показано на рис. 5.7,б.

Переваги підходу:

  1. При видаленні запису в каталозі (при видаленні файлу) на його місце завжди зможе поміститися запис іншого файлу.

  2. Імена файлів не починалися на межі слів, тому відпадає потреба в символах- заповнювачах після імен файлів, показаних на рис. 5.7, б, на відміну від тих імен, які показані на рис. 7.7, а.

Недолік підходу:

  1. Але спільним сховищем імен як і раніше потрібно буде керувати, і при обробці імен файлів все ще можуть відбуватися помилки відсутності сторінок.

Рис. 5.7. Реалізація імен в каталозі: безпосередньо в записі (а), в «кучі» (б)

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

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