В. Столлингс - Операционные системы (1114679), страница 119
Текст из файла (страница 119)
Каталог содержит информацию о файлах, включая трибуты, местоположение, принадлежность. Большая часть этой информации, собенно та, которая связана с хранением, находится под управлением операцинной системы. Сам по себе каталог является Файлом (владельцем которого явяется операционная система), доступным для различных подпрограмм управле;ия файлами. Хотя некоторая часть информации в каталогах доступна пользоателям и приложениям, эта доступность косвенная (посредством системных ~одпрограмм). Таким образом, прямого доступа к каталогу у пользователей нет даже в режиме только для чтения).
В табл. 12.2 приведена информация о Файлах, которая обычно хранится в ;аталоге. С точки зрения пользователя, каталог отображает имена файлов, из~естные пользователям и приложениям, на собственно Файлы. Таким образом, оаждая запись в каталоге содержит имя Файла. Практически все системы рабо;ают с Файлами различных типов и способов организации, и эта информация акже предоставляется каталогом. Важной категорией информации о каждом (~яйле является информация, связанная с его хранением на диске, включая разяер файла и его местоположение.
В системах с совместным использованием очень важно обеспечить информацию для управления доступом к Файлам. Обыччо у Файла имеется один владелец, а остальным пользователям могут быть преЮставлены определенные права доступа. И, наконец, информация по использо~анию Файла необходима как для текущего управления Файлом, так и для запи".и истории работы с ним. Окончание жабл. 1й Мах"симвльаып размер фвпла Информация об использовании Структура Способы хранения информации, предложенной в табл.
12.2„различны у разных систем. Часть информации может храниться в заголовочной записи, связанной с файлом. Это снижает количество информации в каталоге, вследствие чего каталог может быть полностью загружен в основную память (и, соответственно, при этом резко вырастает скорость работы с ним). Естественно, что некоторые ключевые элементы должны храниться в каталоге.
Обычно к таковым относятся имя, адрес, размер и организация. П ростейшей структурой каталога является список записей, по одной для каждого Файла. Эту структуру можно представить в виде простого последовательного Файла, в котором ключевым полем служит имя файла, В некоторых ранних однопользовательских системах использовалась именно такая технология но н , но она не подходит ни для многопользовательской системы, ни даже для одиночных пользователей со многими файлами.
Чтобы понять требования, предъявляемые к файловой структуре, полезно рассмотреть типы операций, которые могут быть выполнены над каталогом. в Поиск. При обращении пользователя или приложения к файлу требуется выполнение поиска записи об этом файле в каталоге. в Создание Файла. При создании нового файла необходимо добавить соответствующий элемент в каталог. Выделенный размер Владелец Информация о доступе Допустямые действня Дата создания Создатель Дата последнего чтения Дата последнего язмеяеняя Последний читатель Дата последнего резервного храяеяяя Текущее нспользо- ваяие Ияформацяя об управлении доступ „ Пользователь которому передано управление зтям файл П ом ользователь может разрешить доступ или отказать в нем ост остальным пользователям, а также изменить их привилегии доступа В простейгпем варианте может включать ямя и пароль ь каждого авторизованного пользователя Управление чтением, записью, пересылкой данных по сети Дата первоначального размещения файла в каталоге Обычно (но пе обязательно) текущий владелец Дата последнего чтения данных из Файла Дата последних процедур обновления, вставки нли удаления Пользователь, который последним обращался к файлу для чтения Дата последнего резервного хранения файла яа другом устройстве ИнФормация о текущих действиях с файлом, например о процес- се нли процессах„открывших Файл, о том, заблокирован ли файл процессом, обновлен ли файл и оперативной памяти, но еще не обновлен на диске Часть 5.
Опйрйции вводд-вывода и фвйлы Глаай( 12. Уцрйвлеике файлаии Глаанык каталог Подкаталог Подкаталог Файл Подкаталог Рис. 12.4. Древовидная структура каталогов Присвоение имен Глвва 12. Упрввление фвйлвми Удаление файла. При удалении Файла из каталога должен быть удален со- ответствующий элемент. а Список фаилов в каталоге. При работе может оказаться необходимым запрос всего содержимого каталога (или его части). Обычно на этот запрос пользователя возвращается список всех файлов, принадлежащих данному пользователю, а также некоторые атрибуты каждого файла (например, его тип, информация о доступе, информация об использовании).
а Обновление каталога. Поскольку в каталоге хранятся некоторые атрибуты файла, изменение хотя бы одного из них требует внесения изменения в соответствующий элемент каталога. Для поддержки всех этих операций простой список не пригоден. Рассмоттим требования одного пользователя. Пользователь может иметь несколько тиюв файлов, таких, как текстовые Файлы, графические файлы, электронные табтицы и т.д. Пользователю может понадобиться хранение файлов, организованаых в соответствии с проектом, над которым он работает, в соответствии с типом тли какими-то другими характеристиками. Если каталог представлен простым юследовательным списком, он не способен оказать помощь в организации Файюв, и пользователю нужно быть предельно осторожным и не использовать одитаковые имена для разных Файлов. Ситуация усложняется в многопользовательских системах, где необходимость присвоения уникальных имен становится :ерьезной проблемой.
Кроме того, если каталог не структурирован, сложно :крывать части общего каталога от пользователей. Решением этих проблем в первом приближении может служить двухуровневая :хема, в которой помимо главного каталога имеются каталоги для каждого пользокателя. Главный каталог содержит записи для каждого каталога пользователя, обестечивая его информацией об адресе и управлении доступом. Каждый пользователь:кий каталог представляет собой простой список файлов этого пользователя. Такая :труктура означает, что имена должны быть уникаггьными только внутри набора гтайлов одного пользователя, а также то, что Файловая система может легко обеспегить ограничение доступа к каталогам.
Однако зта система все еще не способна ока1ать помощь пользователю при структурировании наборов файлов. Более мощным и гибким (и широко распространенным) подходом является кспользование иерархической, или древовидной, структуры (рис. 12.4). В ней гакже существует главный каталог, внутри которого размещены каталоги польювателей. В свою очередь, каждый из этих пользовательских каталогов (лтобого /ровня) может содержать подкаталоги и Файлы.
Остается сказать о том, как организованы каталоги и подкаталоги. Естественно, -'амым простым решением является хранение каждого каталога в виде последовагельного Файла. Однако если каталоги могут содержать очень большое количество клементов, то такая организация может привести к непозволительно продолжительюму времени поиска. В этом случае более удобной оказывается хеш-структура.
Пользователю необходима возможность обращения к файлу по его символьюму имени. Очевидно, что каждый Файл в системе должен иметь уникальное змя, для того чтобы обращение к Файлу не оказалось неоднозначным. Часть 5. Опервции ввеу(и-выли~да и 4ййлы Использование древовидного каталога минимизирует сложность назначения уникальных имея. К любому файлу в системе можно добраться по пути от корневого каталога вниз по ветвям подкаталогов. Серия имен подкаталогов, заверйающаяся собственно именем Файла, определяет полное имя Файла.
Например„файл в левом нижнем углу на рис. 12.5 имеет полное имя /~эег Б/кгогсг/Ггп1с АЛЖ=. Наклонная черта используется для разделения имен каталогов. Имя главного к»- талога указано неявно, поскольку все пути начинаются именно от него. Заметим, что в связи с этим в системе допускается наличие файлов с одинаковыми именами, поскольку каждый из них имеет уникальное полное имя. Как показано на рис. 12.5, в системе есть еще один Файл с именем дПС, но его полное имя— /Пэегэ Б/Югах/АВС. Хотя полное имя и облегчает выбор имен файлов, указывать его каждый раз при обращении к файлу не совсем удобно.
Обычно интерактивный пользователь или процесс связаны с текущим каталогом, называемым также р»- бочим. Таким образом, обращение к Файлам можно осуществлять, указывая их имена относительно рабочего каталога. Например, если рабочий каталог пользователя  — "Хогб", то имени ип1~ д/двс достаточно для идентификации Файла, показанного в нижнем левом углу рис. 12.5.
При входе интерактивного пользователя в систему, как и при создании процесса, рабочим каталогом по умолчанию является пользовательский каталог. Во время работы пользователь может перемещаться по дереву каталогов вниз или вверх, определяя иной рабочий каталог. е з ма возмож возникаю Права доступа Глава, 12.