Інші форми організації файлів

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

Перший крок в структуризації - зберігання файлу у вигляді послідовності записів фіксованої довжини, кожна з яких має внутрішню структуру. Операція читання проводиться над записом, а операція запису переписує або додає запис цілком. Раніше використовувалися записи по 80 байт (це відповідало числу позицій в перфокарті) або по 132 символи (ширина принтера). У ОС CP/M файли були послідовностями 128-символьних записів. З введенням CRT-терминалов дана ідея втратила популярність.

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

Рис. 13.1. Файл як послідовність записів змінної довжини

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

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

Рис. 13.2. Приклад організації індексу для послідовного файлу

Слід зазначити, що майже завжди головним чинником збільшення швидкості доступу є надмірність даних.

Спосіб виділення дискового простору за допомогою індексних вузлів, вживаний у ряді ОС (Unix і деяких інших, див. наступну лекцію), може служити іншим прикладом організації індексу.

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