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

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

а – одноуровневая организация; б – дерево; в – сеть

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

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

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

Имена файлов

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

Простое , или короткое , символьное имя идентифицирует файл в пределах одного каталога. Простые имена присваивают файлам пользователи и программисты, при этом они должны учитывать ограничения ОС как на номенклатуру символов, так и на длину имени. До сравнительно недавнего времени эти границы были весьма узкими. Так, в файловой системе FAT длина имен ограничи­вались схемой 8.3 (8 символов – собственно имя, 3 символа – расширение имени), а в файловой системе s5, поддерживаемой многими версиями ОС UNIX, простое символьное имя не могло содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлам легко запоминающиеся названия, ясно говорящие о том, что содержится в этом файле. Поэтому современные файловые системы, а также усовершенство­ванные варианты уже существовавших файловых систем, как правило, поддер­живают длинные простые символьные имена файлов. Например, в файловых сис­темах NTFS и FAT32, входящих в состав операционной системы Windows NT, имя файла может содержать до 255 символов.

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

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

installable filesystem manager.doc

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

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

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

Файл может быть идентифицирован также относительным именем. Относи­тельное имя файла определяется через понятие “текущий каталог”. Для каждого пользователя в каждый момент времени один из каталогов файловой системы является текущим, причем этот каталог выбирается самим пользователем по ко­манде ОС. Файловая система фиксирует имя текущего каталога, чтобы затем использовать его как дополнение к относительным именам для образования пол­ного имени файла. При использовании относительных имен пользователь иден­тифицирует файл цепочкой имен каталогов, через которые проходит маршрут от текущего каталога до данного файла. Например, если текущим каталогом является каталог /user, то относительное имя файла /user/anna/main.exe выглядит следующим образом: anna/main.exe.

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

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

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

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

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

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

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

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

Рис. 20. Две файловые системы до монтирования

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

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

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

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

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

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

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

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

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

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

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

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

 признак “только для чтения”;

 признак “скрытый файл”;

 признак “системный файл”;

 признак “архивный файл”;

 признак “двоичный/символьный”;

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

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

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

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

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

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

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

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

Рис. 22. Структура каталогов:

а – структура записи каталога MS-DOS (32 байта); б – структура записи каталога ОС UNIX

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

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


Похожая информация.


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

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


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

Например, в MS – DOC и Windows каталоги образуют древовидную структуру, а в UNIX – сетевую.

В древовидной структуре каждый файл является листом . каталог самого верхнего уровня называетсякорневым каталогом или корнем .

Имена файлов

В файловых системах используется три типа имен файлов: простые, составные и относительные.

Простое (короткое, символьное) имя идентифицирует файл в пределах одного каталога. Эти имена присваивают пользователи с учетом ограничений ОС. Мак в файловой системе FAT длина имени ограничивается схемой 8.3 (8 символов имя, 3-расшинение), а в файловых системах NTFS и FAT32, входящих в состав ОС Windows NT, имя файла может содержать до 255 символов.

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

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

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

В древовидной файловой системе между файлом и его полным именем имеется взаимно однозначное соответствие один файл – одно полное имя .

В случае сетевой структуры имеет место соответствие: один файл – много полных имен.

Файл может быть также идентифицирован относительным именем. Оно образуется через понятие текущий каталог. ОС фиксирует имя текущего каталога и использует его как «добавку» к полному имени, используя относительное имя. Например. текущий каталог USER относительное имя main.exe. Полное имя USER/main.exe.

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

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

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

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

Второе решение. Файловые системы объединяются в единую файловую систему, которая описывается единым деревом каталогов.

Такая операция наз.монтированием.

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

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


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

Атрибуты –информация, которая описывает свойства файла. Примеры возможных атрибутов:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

· признак записи в файл;

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

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

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

сделано в MS-DOS

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

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

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

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

Обычные файлы, или просто файлы, содержат информацию произвольного характера, которую заносит в них пользователь или которая образуется в результате работы системных и пользовательских программ. Большинство современных операционных систем (например, UNIX, Windows, OS/2) никак не ограничивает и не контролирует содержимое и структуру обычного файла. Содержание обычного файла определяется приложением, которое с ним работает.

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

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

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

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

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

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

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

Рис. 18. Иерархия файловых систем: а)- одноуровневая; б)- сетевая; в)- древовидная

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

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

Имена файлов

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

Простое , или короткое, символьное имя идентифицирует файл в пределах одного каталога. Простые имена присваивают файлам пользователи и программисты. В файловой системе FAT длина имен вначале ограничивались схемой 8.3 (8 символов - собственно имя, 3 символа - расширение имени), это имя файла кодируется кодами ASCII. В современных файловых системах такое имя называется коротким. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлам легко запоминающиеся названия, ясно говорящие о том, что содержится в этом файле. Поэтому современные файловые системы поддерживают длинные символьные имена файлов. Имя файла может содержать до 255 символов. Длинное имя кодируется кодом UNICODE. Примеры простых имен файлов: ul.doc; task.exe, лабораторная работа.doc.


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

Полное имя представляет собой цепочку простых символьных имен всех каталогов, через которые проходит путь от корневого каталога до данного файла. Таким образом, полное имя является составным, в котором простые имена отделены друг от друга принятым в ОС разделителем. На Рис.20 в) два файла имеют простое имя main.exe, однако их составные имена \depart\main.ехе и \user\anna\main.exe различаются.

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

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

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

Обычные файлы, или просто файлы, содержат информацию произвольного характера, которую заносит в них пользователь или которая образуется в результате работы системных и пользовательских программ. Большинство современных операционных систем (например, UNIX, Windows, OS/2) никак не ограничивает и не контролирует содержимое и структуру обычного файла. Содержание обычного файла определяется приложением, которое с ним работает.

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

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

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

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

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

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