Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Операционные системы. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
11.08.2026
Размер:
646 Кб
Скачать

5.4. Логическая организация ФС

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

 

Таблица 5.1

 

Возможные атрибуты

 

 

Атрибут

Значение

 

 

Тип файла

Обычный, каталог, специальный и т. д.

 

 

Владелец файла

Текущий владелец

 

 

Создатель файла

Идентификатор пользователя, создавшего файл

 

 

Пароль

Пароль для получения доступа к файлу

 

 

Время

Создания, последнего доступа, последнего изменения

 

 

Текущий размер файла

Количество байтов в записи

 

 

Максимальный размер

Количество байтов, до которого можно увеличивать раз-

мер файла

 

 

 

Флаг «только чтение»

0 – чтение / запись, 1 – только чтение

 

 

Флаг «скрытый»

0 – нормальный, 1 – не показывать в перечне файлов

каталога

 

 

 

Флаг «системный»

0 – нормальный, 1 – системный

 

 

Флаг «архивный»

0 – заархивирован, 1 – требуется архивация

 

 

ФлагASCII / двоичный

0 –ASCII, 1 – двоичный

 

 

Флаг произвольного доступа

0 – только последовательный доступ, 1 – произвольный

доступ

 

 

Флаг «временный»

0 – нормальный, 1 – удаление после окончания работы

процесса

 

 

 

Позиция ключа

Смещение до ключа в записи

 

 

Длина ключа

Количество байтов в поле ключа

 

 

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

91

5.Управление данными

5.4.4.Логическая организация файла

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

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

впрограмме логикой.

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

Другая модель файла, которая применялась в ОС OS/360, DEC RSX, а сейчас используется в ОС OpenVMS – это структурированный файл. В этом случае поддержание структуры файла поручается ФС, представляющей файл как упорядоченную последовательность логических записей. Приложение может обращатьсяк ФСс запросамина вводвывод на уровне записей. ФС должна обладать информацией о структуре файла, достаточной для того, чтобы выделить любую запись. ФС предоставляет приложению доступ к записи, вся дальнейшая обработка данных, содержащихся в этой записи, выполняется приложением.

ФС может использовать два способа доступа к логическим записям: читать или записывать логические записи последовательно (последовательный доступ) или позиционировать файл на запись с указанным номером (прямой доступ).

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

92

5.4. Логическая организация ФС

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

К числу таких способов относится представление данных в виде записей, длина которых фиксирована в пределах файла (рис. 5.2, а). Доступ к n записи осуществляется либо путем последовательного чтения n – 1 предшествующих записей, либо прямо по адресу, вычисленному по ее порядковому номеру. Например, начальный адрес n записи равен L × n, если L – длина записи.

Рис. 5.2. Способы структуризации файлов

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

Файлы, доступ к записям которых осуществляется последовательно, по номерам позиций, называются неиндексированными, или последовательными.

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

93

5. Управление данными

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

5.5. Физическая организация ФС

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

5.5.1. Диски, разделы, секторы, кластеры

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

На каждой стороне каждой пластины размечены тонкие концентрические кольца – дорожки, на которых хранятся данные. Количество

94

5.5. Физическая организация ФС

дорожек зависит от типа диска. Нумерация дорожек начинается с 0 от внешнего края к центру диска. Когда диск вращается, элемент, называемый головкой, считывает двоичные данные с магнитной дорожки или записывает их на магнитную дорожку.

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

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

ОС при работе с диском использует, как правило, собственную единицу дискового пространства, называемую кластером. При создании файла место на диске ему создается кластерами. Например, если файл имеет размер 3118 байт, а размер кластера в ФС определен в 1024 байт, то файлу будет выделено на диске четыре кластера.

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

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

95

5. Управление данными

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

Прежде чем форматировать диск под определенную ФС, он может быть разбит на разделы. Раздел – это непрерывная часть физического диска, которую ОС представляет пользователю под логическое устройство (логический диск и логический раздел). Логическое устройство функционирует так, как если бы это был отдельный физический диск. Именно с логическими устройствами работает пользователь, обращаясь книмпосимвольным именам,применяя, например, обозначенияA,B,C

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

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

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

5.5.2. Физическая организация и адресация файла

Важным компонентом физической организации ФС является физическая организация файла, т. е. способ размещения файла на диске. Основными критериями эффективности физической организации файлов являются:

1)скорость доступа к данным;

2)объем адресной информации;

3)степень фрагментированности дискового пространства;

4)максимально возможный размер файла.

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

96

5.5. Физическая организация ФС

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

а

б

в

г

Рис. 5.3. Способы физического размещения файла

Следующий способ физической организации – размещение файла в виде связанного списка кластеров дисковой памяти (рис. 5.3, б). При таком способе в начале каждого кластера содержится указатель на следующий кластер. В этом случае адресная информация минимальна: расположение файла может быть задано одним числом – номером первого кластера. В отличие от предыдущего способа каждый кластер можетбытьприсоединенкцепочкекластеровкакого-либофайла,следо- вательно, фрагментация на уровне кластеров отсутствует. Файл может

97

5. Управление данными

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

Популярным способом, применяемым, например, в ФС FAT, является использование связанного списка индексов (рис. 5.3, в). Этот способ является некоторой модификацией предыдущего. Файлу также выделяется память в виде списка. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. Остальная информация отделена от кластеров файла. С каждым кластером связывается некоторый элемент – индекс. Индексы располагаются в отдельной области диска – в таблице FAT (File Allocation Table), занимающей один кластер. Когда память свободна, все индексы имеют нулевое значение. Если некоторый кластер N назначен некоторому файлу, то индекс этого кластера становится равным либо номеру M следующего кластера данного файла, либо принимает специальное значение, являющееся признаком того, что этот кластер является в файле последним. Индекс же предыдущего кластера файла принимает значение N, указывая на вновь назначаемый кластер.

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

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

98

5.6. Контроль доступа к файлам

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

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

5.6. Контроль доступа к файлам

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

Различают два основных подхода к определению прав доступа:

1)избирательный доступ, когда для каждого файла и каждого пользователя сам владелец может определить допустимые операции;

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

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

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

99

5. Управление данными

1)создание файла;

2)уничтожение файла;

3)открытие файла;

4)закрытие файла;

5)чтение файла;

6)запись в файл;

7)дополнение файла;

8)поиск в файле;

9)получение атрибутов файла;

10)установление новых значений атрибутов;

11)переименование;

12)выполнение файла;

13)чтение каталога;

14)смена владельца;

15)изменение прав доступа.

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

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

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

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

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

100

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]