Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
07. Файли та файлові системи.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
200 Кб
Скачать
☆

2. Блокування (фізичні та логічні записи).

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

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

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

Рис. Організація та обробка файлів даних: а - логічні і фізичні записи; б - записи фіксованої довжини (ФД) незблоковані; в - записи ФД з блокуванням; г - записи змінної довжини (ЗД); д - записи ЗД з блокуванням; е - записи невизначеної довжини; ж - потоко-орієнтований файл; з - типовий цикл обробки файлу; ЕОВ - кінець блоку; EOF - кінець файлу; EOR - кінець запису; L - байти довжини запису

На логічному рівні виділяють наступні типи записів (рис.):

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

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

• невизначеної довжини – представлення записів, які мають змінну довжину, коли дані, що утворюють логічний запис, завершуються роздільником кінець запису (або термінатором запису). Порядок доступу до записів може бути тільки послідовним, оскільки для визначення точки початку наступного запису треба знати значення довжини попередньої.

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

Цикл обробки файлу (наприклад, внесення змін до рахунки клієнтів) включає наступні операції (Рис.):

• відкриття файлу - заняття пристрою, на якому файл розміщений (наприклад, магнітний диск), створення в ОП керуючого блоку, в якому записується довідка про стан файлу і буфера (або набору буферів - буферного пулу) для зберігання поточного, оброблюваного запису файлу;

• організація циклу, керованого файлом (закінчується після вичерпання записів / байтів файлу – настанні стану EOF - end-of-file), після цього виконується деякий оператор, зазвичай завершення обробки. Цикл повинен містити команду типу READ, GET (введення запису) або PUT, write (висновок записи) або rewrite (оновити запис). Команда READ може бути функціональним аналогом заголовка циклу;

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