Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ostatok_lektsy_3_kurs_OSSiO.doc
Скачиваний:
4
Добавлен:
18.09.2019
Размер:
801.28 Кб
Скачать

Операционные системы, среды и оболочки 69

Современные архитектуры файловых систем

Современные ОС предоставляют пользователю возможность работать сразу с несколькими файловыми системами (например, Linux работает с Ext2fs, FAT, NTFS и др.). Файловая система в традиционном понимании становится частью более общей многоуровневой структуры (см. рис. 12.14 ***слайд 37).

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

Рис. 12.14.  Архитектура современной файловой системы

Файловые системы FAT

В файловой системе FAT дисковое пространство любого логического диска делится на две области: системную область и область данных, которые создаются при форматировании (например, с помощью FORMAT.COM), а затем постоянно изменяются в процессе работы. Эти области схематично показаны на следующей схеме (***слайд 38):

Системная область состоит из следующих компонентов:

- загрузочной записи (Boot Record, BR);

- зарезервированных секторов (Reserved Sectors, ResSec);

- таблицы размещения файлов (File Allocation ТаЫе, FАТ);

- корневого каталога (Root Directory, RDir).

В связи с чрезвычайной важностью таблицы FАТ она хранится в двух одинаковых экземплярах. Об­новляются копии FАТ одновременно, но используется только одна из них. Если он по каким-либо причинам окажется разрушенным, то произойдет обраще­ние ко второму экземпляру.

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

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

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

Каждый файл занимает целое число кластеров. Последний кластер при этом мо­жет быть задействован не полностью, что при большом его размере может приводить к заметной потере дискового пространства.

При создании разделов на диске пользователь может сам назначить размер кластера. Здесь нужно найти компромиссный вариант. С одной стороны – для уменьшения потерь из-за фрагментации кластеры желательно делать небольшими, а с другой стороны – для сокращения объема адресной информации и повышения скорости обмена наоборот – чем больше, тем лучше. Обычно для файловой системы FAT размер кластера выбирается от 0,5 до 64 Кбайт (1-128 секторов). Мы уже рассматривали устройство простейшей таблицы оглавления тома (в общем виде), а теперь рассмотрим устройство конкретной таблицы FAT-16.

Таблица FAT содержит массив индексных указателей (узлов), каждый из которых, показывает состояние своего кластера и может принимать одно из 5 значений:

  • кластер свободен (не используется);

  • кластер используется файлом и не является последним. В этом случае указатель содержит ссылку на следующий кластер (в виде номера);

  • кластер является последним;

  • дефектный кластер;

  • резервный кластер.

Перед тем, как разместить файл в дисковом пространстве, ОС разбивает его на части (фрагменты). Размещение этих фрагментов происходит по принципу «первый свободный» и схематично может быть представлено следующим образом (*** слайд 39):

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

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

Поскольку файлы на диске изменяются (удаляются, перемещаются, увеличива­ются или уменьшаются), то правило «первого свободного кластера» для новых данных приводит к фрагментации файлов, то есть дан­ные одного файла могут располагаться не в смежных кластерах, а «вразброс». Естественно, что это приво­дит к существенному замедлению работы с файлами.

Для восстановления, изменения загрузочной записи и таблицы FAT используются утилиты типа Disk Editor (Norton-Symantec), а также Partition Magic и Disk Administrator (Асгопis), которая считается на сегодняшний день одной из самых мощных.

Классические варианты ФС – FAT12/16 работают с именами файлов по схеме 8+3, а максимальное количество файлов в корневом каталоге не превышает 512.

Более совершенной ФС из семейства FAT является FAT-32, которая позволяет в принципе поддерживать более 4 млрд. (232) кластеров, но самом деле могут использоваться только 228 кластеров (268 млн.). Впервые она была использована в ОС Win 95_OSR2. Эта ФС позволяет работать с именами файлов по схеме 255+3 символов (хотя Microsoft этого и не рекомендует делать), и работать с дисками, размером в несколько десятков Гбайт (*мах – до 64 Гб). Кол-во элементов главного каталога здесь уже не 512, а 2048. Для совместимости эта ФС может преобразовывать названия файлов в формат 8+3, т.е. если файл создан в FAT-32, а потом он просматривается через FAT-12 или 16, то вместо длинного имени файла будет отображаться его усеченный вариант. Например, название папки Program Files в FAT-12 или 16 будет отображаться, как Progra~1.

Важное преимущество FAT-32 перед вышеуказанными заключается в меньших потерях дискового пространства, т.к. за счет увеличения кол-ва кластеров их размер можно сделать меньшим, что дает экономию по сравнению с FAT-16 в среднем на 10-15%.

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

Файловая система NTFS

Впервые эта ФС начала использовать в 1993 г. в ОС Windows NT 3.1. В названии ФС NTFS не случайно входят слова «новая технология», т.к. по сравнению с FAT-32 она имеет ряд отличительных особенностей. Основные из них:

1. Работа с большими дисками. NTFS имеет размер кластера 512 байт, что в принципе оптимально, но его можно менять до 64 Кбайт. Более важно то, что NTFS способна теоретически работать с томами размером в 16 млн. терабайт. Теоретически, потому что таких жестких дисков пока не существует.

2. Устойчивость. NTFS имеет некоторые средства самовосстановления. В основе этой ФС находятся две таблицы MFТ (Masteг File ТаЫе), структура которых очень напоминает таблицу БД. Все операции, производимые с файловой структурой, журналируются и могут быть отменены в случае сбоя. Кроме того, эта ФС при ошибках чтения с жесткого диска пытается перенести данные в исправные области диска.

3. Защищенность. NTFS рассматривает файлы как объекты. Каждый файловый объект обладает свойствами, такими, как его имя, дата создания, дескриптор безопасности и др. Файловый объект также содержит набор методов, которые позволяют с ним работать, такие, как ореn, close, read и write. Пользователи (включая сетевых) для обращения к файлу вызывают эти методы, а Secuгity Reference Monitor (SRM) определяет, имеет ли пользователь необходимые права для вызова какого-либо метода или нет. Кроме этого, файлы можно шифровать*.

4. Компрессия данных. NTFS позволяет сжимать отдельные каталоги и файлы, в отличие от DriveSpace, который позволял сжимать только диски целиком. Это очень удобно, для экономии пространства на диске.

5. Поддержка формата кодировки символов Unicode. Как известно, формат Unicode использует 16-bit-ную кодировку каждого символа. Т.е. можно называть файлы на любом языке, хоть на китайском.

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

Структура тома с файловой системой NTFS

Как и многие другие файловые системы, NTFS делит все полезное дисковое про­странство тома на кластеры. Файловая система NTFS поддерживает размеры кластеров от 512 байт до 64 Кбайт; хотя некоторым стандартом же считается кластер размером 2 или 4 Кбайт. Структура раздела (тома) NTFS показана на следующей схеме (***слайд 40):

Все дисковое пространство в NTFS делится на две неравные части (рис.). Пер­вые 12 % диска отводятся под так называемую зону MFT (Master File ТаЫе - глав­ная таблица файлов). Эта зона предназначена для таблицы MFT (с учетом ее буду­щего роста). На диске эта таблица представляющей собой специальный файл со служебной информацией. Запись каких­ либо данных в зону MFT невозможна - она всегда остается пустой, чтобы при росте MFT по возможности не было фрагментации. Остальные 88 % тома пред­ставляют собой обычное пространство для хранения файлов.

Таблица MFT поделена на записи фиксированного размера = 1 Кбайт, и каждая запись соответствует како­му-либо файлу. Первые 16 файлов носят служеб­ный характер и недоступны через обычный интерфейс - они назы­ваются метафайлами (их имена начинаются со знака $). Копия этих 16 служ. файлов таблицы MFT для надежности хранится еще и в середине тома. Оставшаяся часть файла MFT может располагаться, как и любой другой файл, в произвольных местах диска.

Итак, вся информация обо всех файлах тома представлена в своеобразной БД - в таблице МFТ, причем чем больше размер файла, тем больше служебной информации о нем (т.к. перечисляются все его кластеры). Сами же данные лежат в других зонах. Но есть одна интересная особенность: если файл имеет очень малый размер, то его данные хранятся прямо в свободных ячейках таблицы MFT, т.е. там, где осталось место от служебной информации (это обычно файлы не более 100 байт).

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