Абстрактна файлова система.

Файли на МД.

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

 

Рис. Розміщення даних на пакеті МД (о); звичайна (б) зона (в) запис; найпростіша файлова система (г)

 

У той час, як доступ до файлів на магнітній стрічці зазвичай здійснюється в послідовному порядку (щоб зчитати запис / блок N, необхідно «перегорнути» N- 1 попередніх), файли на МД допускають прямий доступ, безпосередньо до необхідного блоку (адреса якого повинна бути попередньо визначена прикладною програмою або ОС).

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

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

Для компенсації різної щільності використовують метод зонного запису (zone bit recording), де весь простір диска ділиться на зони (вісім і більше) (рис.). У зоні, розташованій на зовнішньому радіусі, записується більша кількість секторів на доріжку (120-96), а потім до центру диска це число зменшується і досягає 64-56.

Зі збільшенням щільності запису на диск виникають труднощі при детектуванні піків аналогових сигналів, що надходять від магнітних головок. Для усунення цього недоліку застосовується метод PRLM (Partial Response Maximum Likelihood - «максимальне правдоподібність при частковому відгуку»), в якому використовується спеціальний алгоритм цифрової фільтрації вхідного сигналу.

4. Файлові системи (ФС).

Операційними системами на кожному томі (дискеті, диску, пакеті дисків, CD-ROM та ін.) створюється сукупність системних даних, яка називається файловою системою (файловою структурою).

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

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

Абстрактна файлова система.

Розглянемо приклад найпростішої (абстрактної) таблиці змісту, заголовку тому (диска, пакета дисків), яка в різних ОС має різні найменування - VTQC - Volume Table of Content (таблиця змісту томи), FAT - File Allocation Table (таблиця розміщення файлів), FDT - File Definition Table (таблиця визначення файлів) і т.п. (рис).

Вона дуже схожа на «справжню» і складається з трьох областей:

• область файлів – таблиця, що має зазвичай обмежене число рядків N (в MS DOS, наприклад, N = 500, тобто число файлів не більше 500). Кількість стовпців М (у прикладі М = 5) зазвичай вибирається з тих міркувань, щоб 85-95% файлів, що створюються користувачами, містили б не більше М блоків, що залежить як від розміру блоку і типу користувача, так і від загального рівня розвитку інформаційного та програмного забезпечення. Перший стовпець таблиці в кожному рядку (заголовковий запис - Title Record) містить дані про фото, в даному прикладі - ім’я файлу;

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

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

• список збійних блоків - таблиця, яка створена при ініціалізації (розмітці, форматуванні) тому (диска), поповнювана програмами діагностики та запобігання виділення дефектних областей на магнітному носії під файли даних.

Тут не вказані такі відомі як атрибути файлів, довжина (в байтах), час створення, тип (архівний, прихований, тільки для читання, не для виконання та ін.), Які можуть міститися в заголовковому записі таблиці (колонка 1). У розвинених системах колективного користування такі дані містяться в спеціальних таблицях поділу повноважень, оскільки перераховані, та й інші атрибути повинні бути співвіднесені з конкретними користувачами.

Крім того, десь повинні бути розміщені мітка тому (ім’я та тип / об’єм), кількість зайнятого і вільного простору та інша сукупна інформація по тому даних.

Перерахуємо особливості ситуації, в найпростішій (штучній) файловій системі:

• File_l займає 6 блоків, це число більше за максимальне, тому адресу останнього блоку (№ 23) розміщено в таблиці переповнення;

• File_2 займає 2 блоки, що менше обмеження, тому вся інформація зосереджена в області файлів.

Є такі конфліктні ситуації:

• File_3 не містить жодного блоку (отже, файл був видалений, але заголовковий запис зберігся);

• File_4 і File_l посилаються на блок № 3. Це – помилка, оскільки кожен блок повинен бути закріплений за єдиним файлом;

«File_l містить посилання на блок № 7, позначений як зіпсований (незчитаний). Це призведе до неможливості коректно повністю прочитати даний файл;

• у списку вільних блоків містяться номери блоків № 12 (позначений як зіпсований) і № 13 (розподілений під File_l).

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

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

Найбільш поширені два підходи:

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

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

6. Типи файлів в ОС.

В системі OS / 360 основну роль грали два типи файлів:

• символьні (вихідні програми або дані);

• виконавчі (програми в машинних кодах).

У сучасних системах активно використовується значно більша різноманітність файлів:

• текстові файли – узагальнена назва для простих і розмічених текстів, ASCII-файлів та інших наборів даних символьної інформації, які інтерпретуються і обробляються текстовими редакторами, процесорами, аналізаторами (Lexicon, Word, ТЕС, аналізатори SGML, HTML);

• текст без розмітки (планарний, «плоский») - файл, який містить лише символи коду ASCII, що відображаються (відтворювані на всіх друкувальних пристроях і терміналах), а також найпростіші керуючі символи: повернення каретки (CR); переклад рядка (LF); символ табуляції (tab), іноді - нова сторінка (LF);

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

• ASCII-файл містить тільки відображаючі коди кодової таблиці ASCII (латиниця та службові символи), зазвичай застосовується для зберігання документів з символьною розміткою (RTF, SGML, HTML);

• Табличний файл містить форматовані дані (символьні, чисельні та ін.), що утворюють рядки і стовпці таблиць, створюваних і оброблюваних табличними СУБД (FoxPro, Clipper, MS Access) та / або процесорами (SuperCalc, MS Excel та ін.);

• графічний файл - бінарний файл, що містить графічну інформацію. Формати: TXF (Tagged Image File), bmp (Bit-Mapped Picture), а також ряд інших - PCX, pic і т.д.;

• мультимедійні файли - бінарні, що містять оцифрованну аудіо- (типи wav або MIDI-Sequencer) відео- (формат MPEG) або змішану інформацію.

 

Таблиця Основні типи файлів, що обробляються в ПЕОМ

 

Контрольні запитання

1. Що таке файл?

2. Що таке та файлова система?

3. Що таке блокування?

4. Що таке абстрактна файлова система?

5. Які типи файлів є в ОС?