logo search
АВМиС - бывшее АПЭВМ / apvem / всякаявсячина

14.Структура данных на магнитных дисках

Для того чтобы можно было загрузить с магнитного диска собственно саму ОС, а уже с ее помощью и организовать работу той или иной системы управленияфайлами, были приняты специальные системные соглашения о структуре диска. Расположение структуры данных, несущее информацию о логической организа­ции диска и простейшую программу, с помощью которой можно находить и за­гружать программы загрузки той или иной ОС, очевидно — это самый первый сектор магнитного диска.Как известно, информация на магнитных дисках размещается и передается бло­ками. Каждый такой блок называется сектором (sector), сектора расположены на концентрических дорожках поверхности диска. Каждая дорожка (track) обра­зуется при вращении магнитного диска под зафиксированной в некотором пред­определенном положении головкой чтения/записи. Накопитель на жестких магнитных дисках (НЖМД)1 содержит один или более дисков (в современных распространенных НЖМД часто — два или три)- Однако обычно под термином «жесткий диск понимают весь пакет магнитных дисков. Группы дорожек (треков) одного радиуса, расположенных на поверхностях маг-нпгных дисков, образуют так называемые цилиндры (cylinder). Современные же­сткие диски могут иметь по несколько десятков тысяч цилиндров, в то время как на поверхности дискеты число дорожек (число цилиндров) ныне, как правило, составляет всего восемьдесят5.Каждый сектор состоит из поля данных и ноля служебной информации, ограни­чивающей и идентифицирующей его. Размер сектора (точнее — емкость поля данных) устанавливается контроллером или драйвером. Пользовательский ин­терфейс DOS поддерживает единственный размер сектора — 512 байт. BIOS же непосредственно предоставляет возможности работы с секторами размером 128, 256, 512 или 1024 байт. Физический адрес сектора на диске определяется с помощью трех «координата, то есть представляется триадой [c-h-s], где с — номер цилиндра (дорожки на по­верхности диска, cylinder), h — номер рабочей поверхности диска (магнитной го­ловки, head), as — номер сектора на дорожке. Номер цилиндра с лежит в диапа­зоне О..С-1, где С — количество цилиндров. Номер рабочей поверхности диска h принадлежит диапазону 0. .Н-1, где Н — число магнитных головок в накопителе. Номер сектора на дорожке S указывается в диапазоне 1, .S, где S — количество секторов на дорожке. Например, триада [1-0-2] адресует сектор 2 на дорожке О (обычно верхняя рабочая поверхность) цилиндра I. В дальнейшем мы тоже бу­дем пользоваться именно этими обозначениями. что обмен информацией между ОЗУ и дисками физически осуществ­ляется только секторами. Вся совокупность физических секторов на винчестере представляет его неформатированную емкость.Жесткий диск может быть разбит на несколько разделов (partition), которые, в принципе затем могут использоваться либо одной ОС, либо различными ОС. Причем самым главным является то, что на каждом разделе может быть органи­зована своя файловая система. Однако для организации даже одной-единстиен-ной файловой системы необходимо определить, по крайней мере, один раздел.Разделы диска могут быть двух типов — primary (обычно этот термин переводят как первичный) и extended {расширенный'). Максимальное число primary-разде­лов равно четырем. При этом на диске обязательно должен был, но крайней мере один primary-раздел. Если primary-разделов несколько, то только один из них может быть активным. Именно загрузчику, расположенному в активном разделе, передается управление при включении компьютера и загрузке операционной сис­темы. Остальные prirnaiy-разделы в этом случае считаются1 «невидимыми, скры­тыми* (hidden).Один из primary-разделов должен быть активным, именно с него должна загру­жаться программа загрузки операционной системы, или так называемый менед­жер загрузки, назначение которого — загрузить программу загрузки ОС из како­го-нибудь другого раздела, и уже с ее помощью загружать операционную систему. Поскольку до загрузки ОС система управления файлами работать не может, то следует использовать для указания упомянутых загрузчиков исключительно абсолютные адреса в формате [c-h-s].По физическому адресу [0-0-1] на винчестере располагается главная загрузочная запись (master hoot record, MBR). содержащая внесистемный загрузчик (non-sys­tem bootstrap — NSB), а также таблицу разделов (partition table, PT). Эта запись занимает ровно один сектор, она размещается в памяти, начиная с адреса 0:7COOh, после чего управление передается коду, содержащемуся в этом самом первом сек­торе магнитного диска. Таким образом, в самом первом (стартовом) секторе фи­зического жесткого диска находится не обычная запись boot record, как на дис­кете, a master hoot record.MBR является основным средством загрузки с жесткого диска, поддерживаемым BIOS. В MBR находятся три важных элемента:

1) программа начальной загрузки (non-system bootstrap). Именно она запуска­ется BIOS после успешной загрузки в память первого сектора с MBR. Она, очевидно, не превышает 512 байт и ее хватает только на то, чтобы загрузить следующую, чуть более сложную программу, обычно — стартовый сектор опе­рационной системы — и передать ему управление;

2) таблица описания разделов диска (partition table). Располагается ц MBR по смещению OxlBE и занимает 64 байта:

3) сигнатура MBR. Последние дна байта MBR должны содержат;, число AA55h По наличию этой сигнатуры BIOS проверяет, что первый блок был загружен успению. Сигнатура эта выбрана не случайно. Ее успешная проверка позво­ляет установить, что все линии передачи данных могут передавать и нули, и единицы.

Таблица partition table описывает размещение и характеристики имеющихся на винчестере разделов. Можно сказать, что эта таблица разделов — одна из наибо­лее важных структур данных на жестком диске. Если эта таблица повреждена, то не только не будет загружаться операционная система {или одна из операцион­ных систем, установленных на винчестере), но перестанут быть доступными и данные, расположенные на винчестере, особенно если жесткий диск был разбит на несколько разделов.

Первичный раздел DOS включает только системный логический диск без каких-либо дополнительных информационных структур.

Расширенный раздел DOS содержит вторичную запись MBR (secondary MBR, SMBR), и состав которой вместо partition table входит таблица логического дис­ка (LDT, logical disk table), ей аналогичная. Таблица LDT описывает размещение и характеристики раздела, содержащего единственный логический диск, а также может специфицировать следующую запись SMBR. Следовательно, если в рас­ширенном разделе DOS создано К логических дисков, то он содержит К экземп­ляров SMBR, связанных в список. Каждый элемент этого списка описывает со­ответствующий логический диск и ссылается (кроме последнего) на следующий элемент списка.