Иерархическая структура файловой системы



Пользователи обращаются к файлам по символьным именам. Однако способ­ности человеческой памяти ограничивают количество имен объектов, к кото­рым пользователь может обращаться по имени. Иерархическая организация про­странства имен позволяет значительно расширить эти границы. Именно поэтому большинство файловых систем имеет иерархическую структуру, в которой уров­ни создаются за счет того, что каталог более низкого уровня может входить в ка­талог более высокого уровня.

Граф, описывающий иерархию каталогов, может быть деревом или сетью. Ката­логи образуют дерево, если файлу разрешено входить только в один каталог, и сеть — если файл может входить сразу в несколько каталогов. Например, в MS-DOS и Windows каталоги образуют древовидную структуру, а в UNIX — сетевую. В древовидной структуре каждый файл являет­ся листом. Каталог самого верхнего уровня называется корневым каталогом, или корнем (root).

При такой организации пользователь освобожден от запоминания имен всех фай­лов, ему достаточно примерно представлять, к какой группе может быть отнесен тот или иной файл, чтобы путем последовательного просмотра каталогов найти его. Иерархическая структура удобна для многопользовательской работы: каж­дый пользователь со своими файлами локализуется в своем каталоге или подде­реве каталогов, и вместе с тем все файлы в системе логически связаны.

Частным случаем иерархической структуры является одноуровневая организа­ция, когда все файлы входят в один каталог.

 

Монтирование

Возникает вопрос, каким образом организовать хранение файлов в системе, имеющей несколько устройств внешней памяти?

Первое решение состоит в том, что на каждом из устройств размещается авто­номная файловая система, то есть файлы, находящиеся на этом устройстве, описы­ваются деревом каталогов, никак не связанным с деревьями каталогов на других устройствах. В таком случае для однозначной идентификации файла пользова­тель наряду с составным символьным именем файла должен указывать иденти­фикатор логического устройства. Примером такого автономного существования файловых систем является операционная система MS-DOS, в которой полное имя файла включает буквенный идентификатор логического диска.

Другим вариантом является такая организация хранения файлов, при которой пользователю предоставляется возможность объединять файловые системы, на­ходящиеся на разных устройствах, в единую файловую систему, описываемую единым деревом каталогов.Такая операция называется монтированием.

Среди всех имеющихся в системе логических дисковых устройств операционная система выделяет одно устройство, называемое системным.

 Пусть имеются две файловые системы, расположенные на разных логических дисках, при­чем один из дисков является системным.

Файловая система, расположенная на системном диске, назначается корневой. Для связи иерархий файлов в корневой файловой системе выбирается некото­рый существующий каталог. После выполне­ния монтирования выбранный каталог становится корневым каталогом вто­рой файловой системы. Через этот каталог монтируемая файловая система подсоединяется как поддерево к общему дереву.

После монтирования общей файловой системы для пользователя нет логической разницы между корневой и смонтированной файловыми системами, в частности именование файлов производится так же, как если бы она с самого начала была единой.

 

 

Атрибуты файлов

Атрибуты — это информация, описывающая свойства файла. Примеры воз­можных атрибутов файла:

- тип файла (обычный файл, каталог, специальный файл и т. п.);

- владелец файла;

- создатель файла;

- пароль для доступа к файлу;

- информация о разрешенных операциях доступа к файлу;

- времена создания, последнего доступа и последнего изменения;

- текущий размер файла;

- максимальный размер файла;

- признак «только для чтения»;

- признак «скрытый файл»;

- признак «системный файл»;

- признак «архивный файл»;

- признак «двоичный/символьный»;

- признак «временный» (удалить после завершения процесса);

- признак блокировки;

- длина записи в файле;

- указатель на ключевое поле в записи;

- длина ключа.

Набор атрибутов файла определяется спецификой файловой системы: в фай­ловых системах разного типа для характеристики файлов могут использоваться разные наборы атрибутов.

Пользователь может получать доступ к атрибутам, используя средства, предос­тавленные для этих целей файловой системой. Обычно разрешается читать зна­чения любых атрибутов, а изменять — только некоторые.

Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это сделано в файловой системе MS-DOS.

Другим вариантом является размещение атрибутов в специальных таблицах, ко­гда в каталогах содержатся только ссылки на эти таблицы. Такой подход реали­зован, например, в файловой системе ufs ОС UNIX.

В том и другом вариантах каталоги обеспечивают связь между именами файлов и собственно файлами. Однако подход, когда имя файла отделено от его атрибу­тов, делает систему более гибкой. Например, файл может быть легко включен сразу в несколько каталогов. Записи об этом файле в разных каталогах могут со­держать разные простые имена, но в поле ссылки будет указан один и тот же но­мер индексного дескриптора.

 

 

Логическая организация файла

В общем случае данные, содержащиеся в файле, имеют некую логическую струк­туру. Эта структура является базой при разработке программы, предназначен­ной для обработки этих данных. Поддержание структуры данных может быть либо целиком возложено на приложение, либо в той или иной степени эту работу мо­жет взять на себя файловая система.

В первом случае, когда все действия, связанные со структуризацией и интерпре­тацией содержимого файла целиком относятся к ведению приложения, файл представляется ФС неструктурированной последовательностью данных. Прило­жение формулирует запросы к файловой системе на ввод-вывод, используя об­щие для всех приложений системные средства, например, указывая смещение от начала файла и количество байт, которые необходимо считать или записать.

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

Другая модель файла, которая применялась в ОС OS/360, DEC RSX и VMS, а в настоящее время используется достаточно редко, — это структурированный файл. В этом случае поддержание структуры файла поручается файловой систе­ме. Файловая система видит файл как упорядоченную последовательность логи­ческих записей. Приложение может обращаться к ФС с запросами на ввод-вывод на уровне записей, например «считать запись 25 из файла FILE.DOC». ФС долж­на обладать информацией о структуре файла, достаточной для того, чтобы выде­лить любую запись. ФС предоставляет приложению доступ к записи, а вся даль­нейшая обработка данных, содержащихся в этой записи, выполняется приложе­нием.

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

К числу таких способов структуризации относится представление данных в виде записей, длина которых фиксирована в пределах файла.

Другой способ структуризации состоит в представлении данных в виде последо­вательности записей, размер которых изменяется в пределах одного файла.

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

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

 

Физическая организация NTFS

Файловая система NTFS была разработана в качестве основной файловой системы для ОС Windows NT в начале 90-х годов с учетом опыта разработки файловых систем FAT и HPFS (основная файловая система для OS/2), а также других су­ществовавших в то время файловых систем. Основными отличительными свой­ствами NTFS являются:

- поддержка больших файлов и больших дисков объемом до 264 байт;

- восстанавливаемость после сбоев и отказов программ и аппаратуры управле­ния дисками;

- высокая скорость операций, в том числе и для больших дисков;

- низкий уровень фрагментации, в том числе и для больших дисков;

- гибкая структура, допускающая развитие за счет добавления новых типов за­писей и атрибутов файлов с сохранением совместимости с предыдущими вер­сиями ФС;

- устойчивость к отказам дисковых накопителей;

- поддержка длинных символьных имен;

- контроль доступа к каталогам и отдельным файлам.

 

Структура тома NTFS

Основой структуры тома NTFS является главная таблица файлов (Master File Table, MFT), которая содержит по крайней мере одну запись для каждого файла тома, включая одну запись для самой себя. Каждая запись MFT имеет фиксированную длину, зависящую от объема дис­ка, — 1,2 или 4 Кбайт.

Все файлы на томе NTFS идентифицируются номером файла, который определяется позицией файла в MFT.

Весь том NTFS состоит из последовательности кластеров, что отличает эту фай­ловую систему от рассмотренных ранее, где на кластеры делилась только область данных. Порядковый номер кластера в томе NTFS называется логическим номе­ром кластера (Logical Cluster Number, LCN). Файл NTFS также состоит из после­довательности кластеров, при этом порядковый номер кластера внутри файла называется виртуальным номером кластера (Virtual Cluster Number, VCN).

Базовая единица распределения дискового пространства для файловой системы NTFS — непрерывная область кластеров, называемая отрезком. В качестве адре­са отрезка NTFS использует логический номер его первого кластера, а также ко­личество кластеров в отрезке к, то есть пара (LCN, к). Таким образом, часть файла, помещенная в отрезок и начинающаяся с виртуального кластера VCN, ха­рактеризуется адресом, состоящим из трех чисел: (VCN, LCN, к).

Для хранения номера кластера в NTFS используются 64-разрядные указатели, что дает возможность поддерживать тома и файлы размером до 264 кластеров. При размере кластера в 4 Кбайт это позволяет использовать тома и файлы, со­стоящие из 64 миллиардов килобайт.

Структура тома NTFS. Загрузочный блок тома NTFS рас­полагается в начале тома, а его копия — в середине тома. Загрузочный блок со­держит стандартный блок параметров BIOS, количество блоков в томе, а также начальный логический номер кластера основной копии MFT и зеркальную ко­пию MFT.

Далее располагается первый отрезок MFT, содержащий 16 стандартных, созда­ваемых при форматировании записей о системных файлах NTFS. Назначение этих файлов описано в показанной ниже таблице MFT.

В NTFS файл целиком размещается в записи таблицы MFT, если это позволяет сделать его размер. В том же случае, когда размер файла больше размера записи MFT, в запись помещаются только некоторые атрибуты файла, а остальная часть файла размещается в отдельном отрезке тома (или нескольких отрезках). Часть файла, размещаемая в записи MFT, называется резидентной частью, а остальные части — нерезидентными. Адресная информация об отрезках, содержащих нере­зидентные части файла, размещается в атрибутах резидентной части.

 

Структура файлов NTFS

Каждый файл и каталог на томе NTFS состоит из набора атрибутов. Важно отме­тить, что имя файла и его данные также рассматриваются как атрибуты файла, то есть в трактовке NTFS кроме атрибутов у файла нет никаких других компо­нентов.

Каждый атрибут файла NTFS состоит из полей: тип атрибута, длина атрибута, значение атрибута и, возможно, имя атрибута. Тип атрибута, длина и имя обра­зуют заголовок атрибута.

Имеется системный набор атрибутов, определяемых структурой тома NTFS. Сис­темные атрибуты имеют фиксированные имена и коды их типа, а также опреде­ленный формат. Могут применяться также атрибуты, определяемые пользова­телями. Их имена, типы и форматы задаются исключительно пользователем.

Системный набор включает следующие атрибуты:

Attribute List(список атрибутов) — список атрибутов, из которых состоит файл; содержит ссылки на номер записи MFT, где расположен каждый атри­бут; этот редко используемый атрибут нужен только в том случае, если атри­буты файла не умещаются в основной записи и занимают дополнительные за­писи MFT;

File Name (имя файла) — этот атрибут содержит длинное имя файла в форма­те Unicode, а также номер входа в таблице MFT для родительского каталога; если этот файл содержится в нескольких каталогах, то у него будет несколько атрибутов типа File Name; этот атрибут всегда должен быть резидентным;

MS-DOS Name (имя MS-DOS) — этот атрибут содержит имя файла в форма­те 8.3;

Version(версия) — атрибут содержит номер последней версии файла;

Security Descriptor (дескриптор безопасности) — этот атрибут содержит информацию о защите файла: список прав доступа ACL и поле ауди­та, которое определяет, какого рода операции над этим файлом нужно регист­рировать;

Volume Version (версия тома) — версия тома, используется только в систем­ных файлах тома;

Volume Name (имя тома) — имя тома;

Data(данные) — содержит обычные данные файла;

MFT bitmap(битовая карта MFT) — этот атрибут содержит карту использо­вания блоков на томе;

Index Root (корень индекса) — корень В-дерева, используемого для поиска фай­лов в каталоге;

Index Allocation (размещение индекса) — нерезидентные части индексного списка В-дерева;

Standard Information (стандартная информация) — этот атрибут хранит всю остальную стандартную информацию о файле, которую трудно связать с ка­ким-либо из других атрибутов файла, например, время создания файла, вре­мя обновления и другие.

Файлы NTFS в зависимости от способа размещения делятся на небольшие, боль­шие, очень большие и сверхбольшие.

Небольшие файлы (small). Если файл имеет небольшой размер, то он может цели­ком располагаться внутри одной записи MFT, имеющей, например, размер 2 Кбайт. Небольшие файлы NTFS состоят по крайней мере из следующих атри­бутов:

- стандартная информация (SI — standard information);

- имя файла (FN — file name);

- данные (Data);

- дескриптор безопасности (SD — security descriptor).

Большие файлы(large). Если данные файла не помещаются в одну запись MFT, то этот факт отражается в заголовке атрибута Data, который содержит признак того, что этот атрибут является нерезидентным, то есть находится в отрезках вне таблицы MFT. В этом случае атрибут Data содержит адресную информацию (LCN, VCN, к) каждого отрезка данных.

Сверхбольшие файлы (extremely huge). Для сверхбольших файлов в атрибуте Attribute List можно указать несколько атрибутов, расположенных в дополни­тельных записях MFT. Кроме того, можно использовать двойную косвенную адресацию, когда нерезидентный атрибут будет ссылаться на другие нерезидентные атрибуты, поэтому в NTFS не может быть атрибутов слишком большой для системы длины.

Очень большие файлы (huge). Если файл настолько велик, что его атрибут дан­ных, хранящий адреса нерезидентных отрезков данных, не помещается в одной записи, то этот атрибут помещается в другую запись MFT, а ссылка на такой ат­рибут помещается в основную запись файла.

 

 

Каталоги NTFS

Каждый каталог NTFS представляет собой один вход в таблицу MFT, который содержит атрибут Index Root. Индекс содержит список файлов, входящих в ката­лог. Индексы позволяют сортировать файлы для ускорения поиска, основанного на значении определенного атрибута. Обычно в файловых системах файлы сор­тируются по имени. NTFS позволяет использовать для сортировки любой атри­бут, если он хранится в резидентной форме.


Дата добавления: 2018-05-09; просмотров: 1096; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!