Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia по ПО.doc
Скачиваний:
157
Добавлен:
16.02.2016
Размер:
859.65 Кб
Скачать

Логічна організація файлу

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

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

Модель файлу, відповідно до якої вміст файлу представляється неструктурованою послідовністю (потоком) байт, стала популярної разом з ОС UNIX, а тепер вона широко використається в більшості сучасних ОС, у тому числі в MS-DOS, Windows NT/2000, NetWare. Неструктурована модель файлу дозволяє легко організувати поділ файлу між декількома додатками: різні додатки можуть по-своєму структурувати й інтерпретувати дані, що втримуються у файлі.

Інша модель файлу, що застосовувалася в ОС OS/360, DEC RSX й VMS, а в цей час використається досить рідко, — це структурований файл. У цьому випадку підтримка структури файлу поручається файловій системі. Файлова система бачить файл як упорядковану послідовність логічних записів. Додаток може звертатися до ФС із запитами на ввід-вивід на рівні записів, наприклад «уважати запис 25 з файлу FILE.DOC». ФС повинна мати інформацію про структуру файлу, достатньої для того, щоб виділити будь-який запис. ФС надає додатку доступ до запису, а вся подальша обробка даних, що втримуються в цьому записі, виконується додатком. Розвитком цього підходу стали системи керування базами даних (СУБД), які підтримують не тільки складну структуру даних, але й взаємозв'язку між ними.

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

Файлова система може використати два способи доступу до логічних записів: читати або записувати логічні записи послідовно (послідовний доступ) або позиціювати файл на запис із зазначеним номером (прямій доступ).

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

Файли, доступ до записів яких здійснюється послідовно, по номерах позицій, називаються неіндексованими, або послідовними.

Все вищесказане більшою мірою ставиться до звичайних файлів, які можуть бути як структурованими, так і неструктурованими. Що ж стосується інших типів файлів, то вони мають певну структуру, відомій файловій системі. Наприклад, файлова система повинна розуміти структуру даних, що зберігаються у файлі-каталозі або файлі типу «символьний зв'язок».

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