Физическая организация жесткого диска
6. ФАЙЛОВЫЕ СИСТЕМЫ
ФАЙЛОВЫЕ СИСТЕМЫ
История систем управления данными во внешней памяти начинается еще с магнитных лент, но современный облик они приобрели с появлением магнитных дисков. До этого каждая прикладная программа сама решала проблемы именования данных и их структуризации во внешней памяти.
Это затрудняло поддержание на внешнем носителе нескольких архивов долговременно хранящейся информации. Историческим шагом стал переход к использованию централизованных систем управления файлами. Система управления файлами берет на себя распределение внешней памяти, отображение имен файлов в адреса внешней памяти и обеспечение доступа к данным.
Рассмотрение принципов построения и особенностей функционирования файловых систем целесообразно начать с основ физической организации носителя большинства файловых систем – жесткого диска.
6.1. Физическая организация жесткого диска
Физическая организация жесткого диска
Основным типом устройств, которые используются в современных вычислительных системах для хранения файлов, являются дисковые накопители. Эти устройства предназначены для считывания и записи данных на жесткие и гибкие магнитные диски. Жесткий диск состоит из одной или нескольких стеклянных или металлических пластин, каждая из которых покрыта с одной или двух сторон магнитным материалом. Таким образом, диск в общем случае состоит из пакета пластин (рис. 34).
Рекомендуемые материалы
Рисунок 34 – Схема устройства жесткого диска
На каждой стороне каждой пластины размечены тонкие концентрические кольца – дорожки (англ. traks), на которых хранятся данные. Количество дорожек зависит от типа диска. Нумерация дорожек начинается с 0 от внешнего края к центру диска. Когда диск вращается, элемент, называемый головкой, считывает двоичные данные с магнитной дорожки или записывает их на нее.
Головка может позиционироваться над заданной дорожкой. Головки перемещаются над поверхностью диска дискретными шагами, каждый шаг соответствует сдвигу на одну дорожку. Запись на диск осуществляется благодаря способности головки изменять магнитные свойства дорожки. В некоторых дисках вдоль каждой поверхности перемещается одна головка, а в других – имеется по головке на каждую дорожку. В первом случае для поиска информации головка должна перемещаться по радиусу диска. Обычно все головки закреплены на едином перемещающем механизме и двигаются синхронно. Поэтому, когда головка фиксируется на заданной дорожке одной поверхности, все остальные головки останавливаются над дорожками с такими же номерами. В тех же случаях, когда на каждой дорожке имеется отдельная головка, никакого перемещения головок с одной дорожки на другую не требуется, за счет этого экономится время, затрачиваемое на поиск данных.
Совокупность дорожек одного радиуса на всех поверхностях всех пластин пакета называется цилиндром (англ. cylinder). Каждая дорожка разбивается на фрагменты, называемые секторами (англ. sectors) или блоками (англ. blocks), так что все дорожки имеют равное число секторов, в которые можно максимально записать одно и то же число байт. Сектор имеет фиксированный для конкретной системы размер, выражающийся степенью двойки. Чаще всего размер сектора составляет 512 байт. Учитывая, что дорожки разного радиуса имеют одинаковое число секторов, плотность записи становится тем выше, чем ближе дорожка к центру.
Сектор – наименьшая адресуемая единица обмена данными дискового устройства с ОП. Для того чтобы контроллер мог найти на диске нужный сектор, необходимо задать ему все составляющие адреса сектора: номер цилиндра, номер поверхности и номер сектора. В связи с тем, что прикладной программе в общем случае нужен не сектор, а некоторое количество байт, не обязательно кратное размеру сектора, то типичный запрос включает чтение нескольких секторов, содержащих требуемую информацию, и одного или двух секторов, содержащих наряду с требуемыми избыточные данные (рис. 35).
Операционная система при работе с диском использует, как правило, собственную единицу дискового пространства, называемую кластером. При создании файла место на диске ему выделяется кластерами. Например, если файл имеет размер 2560 байт, а размер кластера в файловой системе определен в 1024 байта, то файлу будет выделено на диске 3 кластера.
Рисунок 35 – Считывание избыточных данных при обмене с диском
Дорожки и секторы создаются в результате выполнения процедуры физического, или низкоуровневого форматирования диска, предшествующей использованию диска. Для определения границ блоков на диск записывается идентификационная информация. Низкоуровневый формат диска не зависит от типа ОС, которая этот диск будет использовать.
Разметку диска под конкретный тип файловой системы выполняют процедуры высокоуровневого, или логического, форматирования. При высокоуровневом форматировании определяется размер кластера и на диск записывается информация, необходимая для работы файловой системы, в том числе информация о доступном и неиспользуемом пространстве, о границах областей, отведенных под файлы и каталоги, информация о поврежденных областях.
Жесткий диск может содержать до четырех основных разделов. Это ограничение связано с характером организации данных на жестких дисках IBM-совместимых компьютеров.
В первом физическом секторе жесткого диска располагается головная запись загрузки и таблица разделов (табл. 1).
Головная запись загрузки (англ. master boot record, MBR) – первая часть данных на жестком диске. Она зарезервирована для программы начальной загрузки BIOS (ROM Bootstrap routine), которая при загрузке с жесткого диска считывает и загружает в память первый физический сектор на активном разделе диска, называемый загрузочным сектором (англ. Boot Sector). Программа, расположенная в MBR, носит название внесистемного загрузчика (Non-System Bootstrap, NSB).
Каждая запись в таблице разделов (англ. partition table) содержит начальную позицию и размер раздела на жестком диске, а также информацию о том, первый сектор какого раздела содержит загрузочный сектор.
Таблица 1. Структура таблицы
Размер (байт) | Описание |
446 | Загрузочная запись (MBR) |
16 | Запись 1 раздела |
16 | Запись 2 раздела |
16 | Запись 3 раздела |
16 | Запись 4 раздела |
2 | Сигнатура 055AAh |
Можно сказать, что таблица разделов – одна из наиболее важных структур данных на жестком диске. Если эта таблица повреждена, то не только не будет загружаться ни одна из установленных на компьютере ОС, но станут недоступными данные, расположенные в диске, особенно если жесткий диск был разбит на несколько разделов.
Информация в лекции "Лекция 8" поможет Вам.
Последние два байта таблицы разделов имеют значение 055AAh, то есть чередующиеся значения 0 и 1 в двоичном представлении данных. Эта сигнатура выбрана для того, чтобы проверить работоспособность всех линий передачи данных. Значение 055AAh, присвоенное последним двум байтам, имеется во всех загрузочных секторах.
Многие ОС позволяют создавать, так называемый, расширенный (англ. extended) раздел, который по аналогии с разделами может разбиваться на несколько логических дисков (англ. logical disks). В этом смысле термин «первичный» можно признать не совсем удачным переводом слова «primary» – лучше было бы перевести «простейший», или «примитивный». В этом случае становится понятным и логичным термин «расширенный». Расширенный раздел содержит вторичную запись MBR (англ. Secondary MBR, SMBR), в состав которой вместо таблицы разделов входит аналогичная ей таблица логических дисков (англ. Logical Disks Table, LDT). Таблица логических дисков описывает размещение и характеристики раздела, содержащего единственный логический диск, а также может специфицировать следующую запись SMBR. Следовательно, если в расширенном разделе создано K логических дисков, то он содержит K экземпляров SMBR, связанных в список. Каждый элемент этого списка описывает соответствующий логический диск и ссылается (кроме последнего) на следующий элемент списка. Загрузчик NSB служит для поиска с помощью таблицы разделов активного раздела, затем копирования в ОП компьютера системного загрузчика (англ. System Bootstrap, SB) из выбранного раздела и передачи на него управления, что позволяет осуществить загрузку ОС.
Вслед за сектором MBR размещаются собственно сами разделы (рис. 36). В процессе начальной загрузки сектора MBR, содержащего таблицу разделов, работают программные модули BIOS. Начальная загрузка считается выполненной корректно только в том случае, если таблица разделов содержит допустимую информацию.
Рисунок 36 – Разбиение диска на разделы