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


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



ЗНАЕТЕ ЛИ ВЫ?

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



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

 

 


Рис.5.1 Иерархия файловой системы

Граф, описывающий иерархию каталогов, может быть деревом или сетью.

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

Ката­логи образуют дерево, если файлу разрешено входить только в один каталог (рис. 5.1,б),

Каталоги образуют сеть — если файл может входить сразу в несколько каталогов (рис. 5.1, в).

Например, в MS-DOS и Windows каталоги образуют древовидную структуру, а в UNIX — сетевую. В древовидной структуре каждый файл являет­ся листом.

Каталог самого верхнего уровня называется корневым каталогом, или корнем (root).

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

Имена файлов

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

-простые,

-полные (состав­ные),

-относительные.

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

Так, в популярной файловой системе FAT длина имен ограничи­вались схемой 8.3 (8 символов — собственно имя, 3 символа — расширение имени), а в файловой системе s5, поддерживаемой многими версиями ОС UNIX, простое символьное имя не могло содержать более 14 символов.

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

Например, в файловых сис­темах NTFS и FAT32, входящих в состав операционной системы Windows ХР, имя файла может содержать до 255 символов.

Примеры простых имен файлов и каталогов:

quest j_ul.doc

task-entran.exe

приложение к CD 254L на русской языке.doc

installable filesystem manager.doc

В иерархических файловых системах разным файлам разрешено иметь одинако­вые простые символьные имена при условии, что они принадлежат разным ката­логам. То есть здесь работает схема «много файлов — одно простое имя».

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

Полное имя представляет собой цепочку простых символьных имен всех катало­гов, через которые проходит путь от корня до данного файла. Таким образом, полное Имя является составным, в котором простые имена отделены друг от друга принятым в ОС разделителем. Часто в качестве разделителя используется прямой или обратный слеш, при этом принято не указывать имя корневого ката­лога. На рис. 5.3, б два файла имеют простое имя main.exe, однако их составные имена /depart/main.ехе и /user/anna/main.exe различаются.

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

Файл может быть идентифицирован также относительным именем.

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

Например, если текущим каталогом явля­ется каталог /user, то относительное имя файла /user/anna/main.exe выглядит следующим образом: anna/ main.exe.

В некоторых операционных системах разрешено присваивать одному и тому же файлу несколько простых имен, которые можно интерпретировать как псевдо­нимы. В этом случае, так же как в системе с сетевой структурой, устанавливается соответствие «один файл — много полных имен», так как каждому простому име­ни файла соответствует по крайней мере одно полное имя.

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

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

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

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

Примером такого автономного существования файловых систем является операционная система MS-DOS, в которой полное имя файла включает буквенный идентификатор логического диска. Так, при об­ращении к файлу, расположенному на диске А, пользователь должен указать имя этого диска: A:\privat\letter\uni\let1.doc.

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

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

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

 

 


Рис. 5.2 а Файловая система 1 до монтирования

 

 


Рис. 5.2 б Файловые системы 2 до монтирования

Через этот каталог монтируемая файловая система подсоединяется как поддерево к общему дереву (рис. 5.3)

 


Рис. 5.3 Общая файловая система после монтирования

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

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

Понятие «файл» включает не только хранимые им данные и имя, но и атрибу­ты.

Атрибуты — это информация, описывающая свойства файла.

Примеры воз­можных атрибутов файла:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это сделано в файловой системе MS-DOS (рис. 5.4, а). На рисунке представлена структура записи в каталоге, содержащая простое символьное имя и атрибуты файла. Здесь буквами обозначены признаки файла: R — только для чтения, А — архивный, Н — скрытый, S — системный.

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

 

Рис. 5.4 Структура записи каталогов: а) в MS-DOS и б) в OC UNIX

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



Поделиться:


Последнее изменение этой страницы: 2017-01-19; просмотров: 396; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.178.207 (0.018 с.)