Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vstup.docx
Скачиваний:
56
Добавлен:
28.09.2019
Размер:
6.42 Mб
Скачать

4.2 Програмування дискової підсистеми комп’ютера (mbr, Partition Table, fat12/16/32).

Архитектура жесткого диска

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

Эти пластинки вращаются с огромной скоростью (5400, 7200 или 10000 оборотов в минуту) в герметичном корпусе. Как и для гибкого диска, около каждой стороны пластинки располагается по одной магнитной головке, но эти головки не соприкасаются с поверхностью диска, а плавают на воздушной подушке в непосредственной близости от диска.

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

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

Данные записываются не сплошным потоком, а блоками определенного размера (512 байт). Эти блоки называются секторами. Сектор – это наименьший объем данных, который записывается или прочитывается контроллером. Для сектора выполняется контроль правильности записи или чтения. При записи сектора вычисляется контрольная сумма всех байтов, находящихся в секторе, и эта контрольная сумма записывается на диск в служебную область, находящуюся после сектора. При чтении эта контрольная сумма вычисляется заново и сравнивается со считанной из служебной области. При несовпадении контроллер сообщает программе об ошибке.

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

К компьютеру HDD подключается через различные интерфейсы, обеспечивающие возможность записи и считывания информации. В настоящее время наиболее распространен интерфейс IDE (EIDE), который обеспечивает возможность подключения до 4х дисков одновременно.

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

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

Физическая структура диска

Рис. Структура физического диска

Любой диск имеет физический и логический формат. Физический формат диска определяет размер сектора (в байтах), число секторов в цилиндре, число цилиндров и число сторон. Логический формат диска определяет способ организации информации на диске и фиксирует размещение информации различных типов.

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

Логическая структура диска

Самый первый сектор жесткого диска (сектор 1, дорожка 0, головка 0) содержит так называемую главную загрузочную запись (Master Boot Record). Эта запись занимает не весь сектор, а только его начальную часть. Сама по себе главная загрузочная запись является программой. Эта программа во время начальной загрузки операционной системы с жесткого диска помещается по адресу 7C00:0000, после чего ей передается управление. Загрузочная запись продолжает процесс загрузки операционной системы.

В конце самого первого сектора жесткого диска располагается таблица разделов диска (Partition Table). Эта таблица содержит четыре элемента, описывающих максимально четыре раздела диска. В последних двух байтах сектора находится число 55AA. Это признак таблицы разделов.

В самом первом секторе активного раздела расположена загрузочная запись (Boot Record). Загрузочная запись считывается в оперативную память главной загрузочной записью, после чего ей передается управление. Загрузочная запись и выполняет загрузку операционной системы.

Значение 0 соответствует дорожке 0, головке 0, сектору 1. При увеличении относительного номера сектора вначале увеличивается номер сектора на дорожке, затем номер головки, и, наконец, номер дорожки. Для вычисления относительного номера сектора можно использовать следующую формулу:

RelSect = (Cyl * Sect * Head) + (Head * Sect) + (Sect -1)

В этой формуле:

Cyl - номер дорожки;

Sect - номер сектора на дорожке;

Head - номер головки.

Примечание: обычно разделы начинаются с четных номеров дорожек, за исключением самого первого раздела. Этот раздел может начинаться с сектора 2 нулевой дорожки (головка 0), так как самый первый сектор диска занят главной загрузочной записью. Байт со смещением 4 - это код системы, использующей раздел диска. Для DOS зарезервированы значения 0, 1, 4, 5. Значение 0 соответствует неиспользуемому разделу диска.

Для работы с логическим диском (или дискетой) на уровне логических номеров секторов DOS предоставляет программам два прерывания - INT 25h (чтение сектора по его логическому номеру) и INT 26h (запись сектора по его логическому номеру).

Разметка жесткого диска может осуществляется, например, с помощью программ Fdisk или Partition Magic.

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