Файловые системы. Всякая операционная система создает на каждом томе (дискете, диске, пакете дисков, CD-ROM и пр.) совокупность системных данных, которая называется файловой системой (файловой структурой).
Файловая система (пустая) создается при инициализации (разметке) тома, затем корректируется ОС (подсистемой управления данными) при текущей работе, в процессе создания, удаления, модификации (увеличения или уменьшения объема) файлов пользователя, содержащих программы или данные.
Файловая система включает в себя таблицу содержания и область данных — совокупность блоков на диске, идентифицируемых своими номерами/адресами. Обычно адрес блока состоит из тройки чисел — № цилиндра (совокупность дорожек, доступных при фиксированном положении блока головок считывающего устройства), № поверхности (дорожки в цилиндре), № блока на дорожке.
Пример простейшей (абстрактной) таблицы содержания, оглавления тома (диска, пакета дисков), которая в разных ОС имеет различные наименования — Таблица Содержания Тома (VTOC — Volume Table of Content), Таблица Размещения Файлов (FAT — File Allocation Table), Таблица Определения Файлов (FDT — File Definition Table) и т. п., приведена на рис. 1.10.
Рис. 1.10. Простейшая таблица оглавления тома
Она очень похожа на «настоящую» и состоит из четырех областей:
область файлов. Это таблица, имеющая обычно ограниченное (в приведенном примере N=6) число строк N (в MS-DOS, например, N- 500, т. е. число файлов не более 500). Количество столбцов М (в примере М - 5) обычно выбирается из тех соображений, чтобы 85—95 % файлов, создаваемых предполагаемыми пользователями, содержало бы не более М блоков, что зависит как от размера блока и типа пользователя, так и от общего уровня развития информационного и программного обеспечения. Первый столбец таблицы в каждой строке {заглавная запись — Title Record) содержит данные о файле, в данном примере — имя файла;
область переполнения — дополнительная таблица аналогичной структуры, в которую записываются номера блоков особо длинных файлов (в примере — File 1).
Организация таблицы размещения в форме области файлов и области переполнения, очевидно, позволяет сэкономить на объеме таблицы в целом, не ограничивая в то же время вероятной длины файла;
список свободных блоков — очевидно, необходимая информация для размещения создаваемых или расширяемых файлов. Список создается при инициализации и включает все блоки, кроме поврежденных, а затем корректируется при создании, удалении, модификации файлов;
Список сбойных блоков. Это таблица, создаваемая при инициализации (разметке) тома (диска), пополняемая программами диагностики (примером которых может являться хорошо известный пользователям NDD — Norton Disk Doctor) и предотвращающая распределение испорченных областей на магнитном носителе под файлы данных.
Здесь не указаны такие известные атрибуты файлов, как длина (в байтах), время создания, тип (архивный, скрытый, только для чтения, не для исполнения и пр.), которые могут содержаться в заглавной записи таблицы (колонка 1 на рис. 1.10).
В развитых системах коллективного пользования такие данные содержатся в специальных таблицах разделения полномочий, поскольку перечисленные, да и другие атрибуты, должны быть соотнесены с конкретными пользователями.
Кроме того, где-то должны быть размещены метка тома (имя и тип/объем), количество занятого и свободного пространства и прочая совокупная информация по тому данных.
Перечислим особенности ситуации, зафиксированной на рис. 1.10 в простейшей (искусственной) файловой системе:
File-1 занимает шесть блоков, это число больше максимального, поэтому адрес блока № 6 (23) размещен в таблице переполнения;
File 2 занимает два блока, что меньше ограничения, поэтому вся информация сосредоточена в области файлов.
Имеются следующие конфликтные ситуации:
File_3 не содержит ни одного блока (следовательно, файл был удален, но заглавная запись сохранилась);
File_4 и Pile 1 ссылаются на блок № 3. Это ошибка, поскольку каждый блок должен быть закреплен за единственным файлом;
File 1 содержит ссылку на блок № 7, помеченный как сбойный (нечитаемый). Это приведет к невозможности корректно полностью прочитать данный файл — ситуация, знакомая каждому, работавшему с НГМД;
в списке свободных блоков содержатся номера блоков № 12 (помеченный как сбойный) и № 13 (распределенный под File_l).
Это очевидные свидетельства начавшегося разрушения файловой системы. Источниками перечисленных конфликтов могут быть сбои, программные ошибки (разработчиков ОС), некорректное завершение ОС или целенаправленная деятельность вирусных или иных злонамеренных программ.
Рассмотренный пример таблицы оглавления относится к случаю так называемой прямой адресации доступа (рис. 1.11). Здесь очевидны следующие особенности:
Рис. 1.11. Доступ к данным с прямой адресацией
таблица создается при инициализации и, даже будучи пустой, занимает определенный объем;
создание файла (даже состоящего из одного байта) приводит к выделению блока и занятию строки таблицы.
Рис. 1.12. Списковая организация доступа к данным (косвенная адресация) (а); комбинированная (мультисписковая) организация доступа (б)
Косвенные — списковая (рис. 1.12, а) и мультисписковая (рис. 1.12, б) — адресации создают управляющие структуры по мере необходимости (при заполнении файла). Высвобождение памяти в списковой структуре осуществляется автоматически при удалении любого промежуточного блока, содержащего также адрес последующего блока файла. Очевидно, это увеличивает и опасность утраты данных при ошибочном удалении или разрушении промежуточного блока файла.
Все операционные системы, как правило, поддерживают следующие элементы иерархических файловых систем:
обычные файлы, каталоги, специальные байт-ориентированные и блок-ориентированные файлы. Файл является массивом байтов (блоков фиксированной длины). Каталоги обеспечивают связь между именами файлов и собственно файлами. Каждый элемент каталога содержит имя файла и ссылку на конкретный файл. Для именования файлов используются корневой и текущий каталоги.
Внешние устройства (такие, как терминал, принтер) также часто представляются как файлы для упрощения работы с ними.
Достарыңызбен бөлісу: |