- •4.3.3 Позиционно независимый код.
- •5.1.3 Операции над файлами
- •5.2.0 Монтирование файловых систем
- •5.3.1 Проблемы размещения, произвольный доступ.
- •5.4 Устойчивость к сбоям.
- •5.4.1 Восстановление фс после сбоя.
- •5.4.2 Фс с трассировкой транзакций.
- •5.4.3 Устойчивость фс к сбоям диска
- •6. Юзер апи.
- •6.1 Интерфейс Командной строки.
5.2.0 Монтирование файловых систем
Прежде чем ОС сможет использовать ФС она должна выполнить над этой ФС опреацию , называемую монтированием. В общем случае операция монтирования включает – 1 проверку типа монтируемо ФС, 2 – проверку целостности ФС, 3 – считывание системных структур данных и иницализация соответствующего модуля для работы с ФС. Драйвер для работы с файловой системы. 4 – в некоторых случая модификацию ФС с тем, чтобы указать что она уже смонтирована (устанавливает специальный флаг). Это может быть необходимо, если файловая система неустойчива к сбоям.В этом случае при ее размонтировании необходимо выполнить специальные опереции, если система пытается смонтировать такой ФС и видит что специальный флаг установлен, это означает что при последнем использовании ее не размонтировали надлежащим образом. В этом случае перед монтированием необходимо запустить программу починки файловой системы, которая выявит все проблемы, возникшие при таком неправильном размонтировании. Чаще всего проблем нет, но иногда всетаки они могут возникнуть.
5 – включение новой файловой системы в общее пространство имен. ( в различных ОС это делается различными способами). Если монтируется ФС, размещенная на удаленной машине, то шаги 1 и 2 заменяются на установление соединения с этой машиной. Многие пользователи МС-ДОС и Виндовс никогда не сталкивались с понятием монтирования. Дело в том, что эти ОС выполняют упрощенную процедуру монтирования при каждом обращении к файлам. Упрощения состоят в пропуске шагов 1 и 2 и отсуствия шага 4 (в МС-ДОС). Обычно имя файла смонтированной файловой системы имеет вид имя _ФС:\имя_каталога\...\имя_файла , при этом вместо «:», «_», «\» могут использоваться другие символы. Например, в качестве имени ФС может использоваться имя физического устройства, на котором расположена ФС. Например DUA0:[USER.WORK]tes+.exe (диск юнит А, девайс №0, путь в квадратных скобках, каталоги разделены точкой и имя файла с расширением). Дисковые ОС как правило помещают в пространство имен все доступные блочные устройства, не выполняя полной процедуры монтирования. Если какое – то из этих устройств содержит ФС неизвестного типа, то ОС будет выдавать сообщение об ошибке при обращении к такому устройству, но скорее всего не удалит его из списка доступных файловых систем. В ОС семейства ЮНИКС смонтированные ФС выглядят как каталоги единого дерева, начинающееся с корневого каталога, выделенного первой файловой системе, называемой корневой (root). Администратор ОС может подмонтировать новую ФС к любому каталогу, находящимся на любом уровне дерева. Такой каталог после этого называют точкой монтирования, но это выражение отражает только текущее состояние каталога. После того как файловая система буде размонтирована можно использовать этот каталог как обычный. Такой подход имеет не очевидное на первый взгляд но серьезное преимущество перед раздельными пространствами имен для разных физических файловых систем. Преимущество состоит в том, что пространство имен оказывается отвязано от физического размещения файлов. Поэтому администратор может поддерживать неизменную структуру дерева каталогов, перемещая при этом отдельные ветви по дискам ради более эффективного использования дискового пространства или просто ради удобства обращения к файлам.
5.2.1 Драйверы файловых систем.
При эксплуатации ОС может возникнуть необходимость монтировать ФС, не являющимися родными для ОС. Для этого необходим драйвер файловой системы со стандартным интерфейсом, подобным драйверу внешнего устройства. Но набор функций такого драйвера должен быть существенно иным и включать функции монтирования / размонтирования ФС, открытие / закрытие, чтение / записи, удаление файлов, функции для чтения из каталога, проверки прав доступа, выдача специфической информации о файле или ФС и т.д. Кроме собственно драйвера ФС для ее полноценной поддержки нужны так же программы создания ФС, контроля и починки.
5.3 Структуры ФС .
1 – последовательная организация; Наиболее простой ФС можно считать структуру создаваемую архиватором ОС типа юникс (Tape Archive). Этот архиватор пишет файл один за другим, помещая в начале каждого файла заголовок с его именем и длиной. Таким образом получается файловая структура с последовательной организацией и записями переменной длинны. Главный недостаток такой ФС – является очень низкая производительность. Если требуется найти какой то определенный файл, то необходимо прочитать первый заголовок, если это не тот файл, то отмотать ленту до его конца, прочитать новый заголовок и т.д пока не найдем нужный. Другой проблемой последовательных структур. Другой проблемой последовательных сруктур явл сложности при изменении длинны файла в середине архива удаления файла или изменения. Поэтому ТАР используется для того, чтобы собрать файлы с диска в некую единую сущность, например для передачи по сети или для резервного копирования, а для работы файлы обычно распаковываются на диск или другой устройство с произвольным доступом.
Устройства с произвольным доступом- чтобы не производить при каждом новом поиске файла просмотр всего устройства удобнее всего разместить каталог в определенном месте, например в начале ленты или диска и выделять место на диске или ленте блоками. Размер блока может совпадать с аппаратным размером сектора устройства, однако большинство ФС могут использовать логические блоки, состоящие из нескольких секторов (кластеры), использование блоков и кластеров вместо адресации с точностью до байта обусловлено 2мя причинами. Во первых у большинства устройств произвольного доступа доступ возможен лишь с точностью до сектора, т.е нельзя произвольно считать или записать любой байт, нужно считывать и записывать весь сектор целиком, именно поэтому в системах семейства ЮНИКС (и других), такие устройсва называют блочными. Во вторых использование крупны единиц адресации позволяет резко увеличить адресуемое пространство, например если использовать 16 битный указатель, то с точностью до байта можно адресовать всего 64 килобайта. Но если в качестве единицы адресации взять 512 байтовый блок, то обьем адресуемых данных может достигать 32 МБ, если использовать клайстер размером 32 килобайта, то можно работать с данными обьемом до 2 ГБ. Таким образом адресация по блокам и клайстерам позволяет использовать в системных структурах данных короткие указатели, что приводит к уменьшению обьема этих структур и снижению накладных расходов. Под накладными расходами в данном случае подразумеваеться не только освобождение дискового пространства, но и ускорение доступа. Структура меньшего размера быстрее считывается, в них быстрее производится поиск. Однако увеличение размера кластера имеет недостаток – она приводит к так называемой внутренней фрагментации.
