Пользователи обращаются к файлам по символьным именам. Однако, если файлов очень много, а способности человеческой памяти ограничены, пользователю сложно запомнить все имена файлов и найти нужный файл среди многих сотен файлов. Иерархическая организация пространства имен позволяет значительно упростить эти задачи. Именно поэтому большинство файловых систем имеет иерархическую структуру, в которой уровни создаются за счет того, что каталог более низкого уровня может входить в каталог более высокого уровня (Рис. 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 различаются.
Файл может быть идентифицирован также относительным именем. Относительное имя файла определяется через понятие «текущий каталог». Для каждого пользователя в каждый момент времени один из каталогов файловой системы является текущим, причем этот каталог выбирается самим пользователем. Файловая система фиксирует имя текущего каталога, чтобы затем использовать его как дополнение к относительным именам для образования полного имени файла. При использовании относительных имен пользователь идентифицирует файл цепочкой имен каталогов, через которые проходит маршрут от текущего каталога до данного файла.