Физическая организация файловой системы
Информационная структура магнитных дисков
Представление пользователей о файловой системе как об иерархически организованном множестве информационных блоков имеет мало общего с порядком хранения файлов на диске. Файл, имеющий образ цельного, непрерывающегося набора байт, на самом деле разбросан своими частями по всему диску, причем это разбиение никак не связано с логической структурой файла. Точно так же логически объединенные файлы из одного каталога совсем не обязательно соседствуют на диске. Принципы размещения файлов, каталогов и системной информации на реальном устройстве описываются физической организацией файловой системы. При этом ясно, что разные файловые системы имеют разную физическую организацию.
Основным устройством для хранения файлов являются жесткие и гибкие магнитные диски. Жесткие диски состоят из одной или нескольких стеклянных или металлических пластин, каждая из которых покрыта с одной стороны или двух сторон магнитным материалом.
На каждой стороне каждой пластины размечены тонкие концентрические кольца – дорожки (treks), на которых хранятся данные. Нумерация дорожек начинается с 0 от внешнего края к центру диска. Когда диск вращается, магнитные головки, имеющиеся над (под) каждой поверхностью диска, считывают или записывают двоичные данные на магнитные дорожки. Головки могут позиционировать над каждой дорожкой, если на одну поверхность диска в устройстве имеется одна головка. Некоторые диски имеют по отдельной головке на каждую дорожку, тогда позиционирование головок не требуется, что повышает быстродействие диска.
Совокупность дорожек одного радиуса на всех поверхностях пластин пакета называется цилиндром (cylinder). Каждая дорожка разбивается на фрагменты, называемые секторами (sectors) или блоками (blocks), так что все дорожки имеют равное число секторов, в которые можно максимально записать одно и то же число байт. Сектор имеет фиксированный для данной системы размер, выражающийся степенью двойки (чаще всего 512 байт).
Сектор – наименьшая адресуемая единица обмена данными диска с оперативной памятью. Для того чтобы контроллер мог найти на диске нужный сектор, ему необходимо задать все составляющие адреса сектора: номер цилиндра, номер поверхности и номер сектора. Типичный запрос включает чтение (запись) нескольких секторов, содержащих наряду с требуемыми избыточные данные.
Операционная система при работе с диском использует, как правило, единицу дискового пространства, называемую кластером (cluster) и содержащую несколько секторов в числе, кратном степени двойки. Это связано с тем, что применение более мелкой единицы дискового пространства – сектора – усложняет учет свободного и занятого пространства диска при современных больших емкостях дисков, исчисляющихся десятками и сотнями Гбайт.
Дорожки и секторы создаются в результате выполнения процедуры физического (низкоуровнего) форматирования диска, предшествующей использованию диска. Для определения границ блоков на диск записывается идентификационная информация. Низкоуровневый формат диска не зависит от типа ОС, которая с этим диском будет работать.
Разметку диска под конкретный тип файловой системы выполняют процедуры высокоуровнего, или логического, форматирования. При высокоуровневом форматировании определяется размер кластера, записываются информация, необходимая для работы файловой системы, и загрузчик ОС – небольшая программа, которая начинает процесс инициализации операционной системы после включения питания.
Прежде чем форматировать диск под определенную файловую систему, он может быть разбит на разделы. Раздел – это непрерывная часть физического диска, которую операционная система представляет пользователю как логическое устройство (логический диск или логический раздел). На каждом разделе может создаваться только одна файловая система.
В IBM-совместных ПК сектор 1 диска называется главной загрузочной записью (MBR – Master Boot Record) и используется для загрузки компьютера. В конце MBR содержится таблица разделов. В ней хранятся начальные и конечные адреса (номера блоков) каждого раздела. Один из разделов помечен в таблице как активный. При загрузке компьютера BIOS считывает и исполняет MBR-запись, после чего загрузчик в MBR-записи определяет активный раздел диска, считывает его первый блок (загрузчик) и исполняет его. Программа, находящаяся в загрузочном блоке, загружает операционную систему, содержащуюся в этом разделе. Для единообразия каждый дисковый раздел начинается с загрузочного блока, даже если в нем не содержится операционной системы. К тому же в этом разделе может быть в дальнейшем установлена операционная система, поэтому зарезервированный загрузочный блок оказывается полезным.
Таблица разделов располагается в MBR по смещению 0х1BE и содержит четыре элемента. Структура записи элемента таблицы разделов приведена ниже.
Наименование записи элемента таблицы разделов | Длина, байт |
Флаг активности раздела | |
Номер головки начала раздела | |
Номера сектора и цилиндра загрузочного сектора раздела | |
Кодовый идентификатор операционной системы | |
Номер головки конца раздела | |
Номера сектора и цилиндра последнего сектора раздела | |
Младшее и старшее двухбайтовые слова относительно номера начального сектора | |
Младшее и старшее двухбайтовые слова размера раздела в секторах |
Каждый элемент таблицы описывает один раздел, причем двумя способами: через координаты C-H-S начального и конечного секторов, а также через номер первого сектора в спецификации LBA (Logical Block Addressing) и общее число секторов в разделе. Последние два байта MBR имеют значение 55AAh, т.е. чередующиеся значения 0 и 1. Эта сигнатура выбрана для того, чтобы проверить работоспособность всех линий передачи данных. Значение 55AAh, присвоенное последним двум байтам, имеется во всех загрузочных секторах.
Разделы дисков могут быть двух типов: первичные (primary) и расширенные (extended). Максимальное число первичных разделов равно четырем. Из них только один может быть активным. Именно загрузчику, расположенному в активном разделе, передается управление при включении компьютера с помощью внесистемного загрузчика. Согласно принятым спецификациям на одном жестком диске может быть только один расширенный раздел, который может быть разделен на логические диски (рис. 7.13). Расширенный раздел содержит вторичную запись MBR, в состав которой вместо таблицы разделов входит аналогичная ей таблица логических дисков (logical Disks Table, LDT). Эта таблица описывает размещение и характеристики раздела, содержащего единственный логический диск, а также может специфицировать следующую запись SMBR (Secondary MBR).
Рис. 7.13.Разделы диска
Во всем остальном строение раздела диска меняется от системы к системе. Часто файловая система содержит некоторые элементы, показанные на рис. 7.14. Один из таких элементов называется суперблоком и содержит ключевые параметры файловой системы, и считывается в память при загрузке компьютера. Следом располагается информация о свободных блоках файловой системы. За этими данными может следовать информация об i-узлах, содержащих информацию о файлах. Следом может размещаться каталог и затем – остальные файлы и каталоги.
Рис. 7.14.Структура раздела
На разных логических устройствах одного и того же физического диска могут располагаться файловые системы разного типа. Все разделы одного диска имеют одинаковый размер блока, определенный для данного диска в результате низкого уровневого форматирования. Однако в результате высокоуровневого форматирования в разных разделах одного и того же диска могут быть установлены различные файловые системы с различными разделами кластеров.
Дата добавления: 2018-05-10; просмотров: 1309;