Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Логическая структура файлового архива. Операции над директориями





 

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

 

Таблица 4.2.

Файлы и директории

 

Имя файла (каталога) Тип файла (обычный или каталог) Характеристики
WINDOWS К Атрибуты
DISTRIBUTIV К Атрибуты
ADMIN К Атрибуты
Autoexec.bat О Атрибуты
mouse.com О Атрибуты
config.sys О Атрибуты
log.txt О Атрибуты

 
 

 

Число директорий зависит от системы. В ранних операционных системах имелась толь одна корневая директория, затем появились директории для пользователей (по одной директории на пользователя). В современных операционных системах используется произвольная структура дерева директорий. Существует несколько аналогичных способов изображения дерева. Наиболее распространена структура перевернутого дерева (рис. 4.5.). Верхнюю вершину называют корнем. Если элемент дерева не может иметь потомков, он называется терминальной вершиной или листом (файлом). Нетерминальные вершины: справочники или каталоги содержат списки терминальных и нетерминальных вершин. Путь от корня к файлу однозначно определяет файл. Подобные древовидные структуры являются графами, не имеющими циклов. Ребра графа направлены вниз. Корень является вершиной, не имеющей входящих ребер. Связывание файлов, которое практикуется в ряде операционных систем, приводит к образованию циклов в графе.

Внутри одного каталога имена файлов уникальны, но в разных каталогах имена файлов могут совпадать. Для того чтобы однозначно определить файл по его имени (избежать коллизии имен), принято именовать файл полным именем (pathname). Полное имя состоит из списка имен вложенных каталогов (по которому можно найти путь от корня к файлу) и имени файла, например, \Program Files\Microsoft Office\Visio\visio.exe. Такие имена уникальны. Компоненты пути разделяют различными символами: «/» – в Unix; «\» – в Windows и MS-DOS; «>» в Multics. Использование древовидных каталогов минимизирует сложность назначения уникальных имен.



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

Для получения доступа к файлу и локализации его блоков система должна выполнить навигацию по каталогам, например, пройти путь \Program Files\Microsoft Office\Visio. Алгоритм одинаков для всех иерархических систем. Сначала в фиксированном месте на диске находится корневая директория. Затем в корневой директории находится компонент пути \Program Filesr,, исследуя который система определяет, что данный файл является каталогом, и блоки его данных рассматривает как список файлов. Далее аналогичным образом производится поиск следующих в списке пути компонентов. В последнем каталоге система определяет компонент visio.exe как файл, открывает его и заносит в таблицу открытых файлов, где сохраняет до закрытия.

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

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

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

1.В современных операционных системах принято разбивать диски на логические диски, в ряде случаев называемые разделами (partitions). Иногда несколько физических дисков объединяют в один логический диск (например, в операционной системе Windows NT). Диски содержат иерархическую древовидную структуру, состоящую из набора файлов, каждый из которых является хранилищем данных пользователя и каталогов, необходимых для хранения информации о файлах системы.

2.В некоторых системах управления файлами требуется, чтобы каждый архив файлов полностью располагался на одном диске (разделе диска). В этом случае полное имя файла начинается с имени дискового устройства, на котором установлен соответствующий диск (буквы диска), например, c:\Admin\adm.exe. Такой способ именования используется в файловых системах DEC и Microsoft.

3.В других системах (например, Multics) вся совокупность файлов и каталогов представляет собой единое дерево. Сама система, выполняя поиск файлов по имени, начиная с корня, требовала установки необходимых дисков.

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

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

- Create – создать каталог. Новый каталог пуст и не содержит никаких элементов, кроме «..» или «.».

- Delete – удалить каталог. В ряде операционных систем удалить можно только пустой каталог.

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

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

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

- Link – связывание. Техника связывания позволяет файлу появляться сразу в нескольких каталогах.

- Unlink – удаление ссылки на файл из каталога. Если файл присутствует только в одном каталоге, то данный системный вызов удалит его из файловой системы. Если существует несколько ссылок на этот файл, то будет удалена только указанная ссылка, а остальные останутся. Данный системный вызов используется в операционной систем Unix для удаления файла.

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

Информация в вычислительной системе должна быть защищена от физического разрушения (reliability) и от несанкционированного доступа (protection). Наличие в системе многих пользователей предполагает организацию контролируемого доступа к файлам. Выполнение любой операции над файлом должно быть разрешено только в случае наличия у пользователя соответствующих привилегий. Обычно контролируются следующие операции: чтение, запись и выполнение. Другие операции, например копирование файлов или их переименование, также могут контролироваться, однако, они чаще реализуются через выше перечисленные операции. Например, операцию копирования файлов можно представить как операцию чтения и последующую операцию записи.

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

- владелец (Owner);

- группа (Group) – набор пользователей, разделяющих файл и нуждающихся в типовом способе доступа к нему;

- остальные (Univers).

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

 





Дата добавления: 2014-01-03; Просмотров: 1589; Нарушение авторских прав?


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Рекомендуемые страницы:

Читайте также:
studopedia.su - Студопедия (2013 - 2020) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление
Генерация страницы за: 0.003 сек.