Структура дисков в MS DOS

Общие понятия

Жесткий диск разбит на стороны, дорожки и сектора. В физическом секторе 1-ой нулевой дорожки нулевой стороны содержится Master Boot Record - главная загрузочная запись (MBR), которая содержит описатели логических разделов диска. Длина раздела в секторах MBR ограничивается 4-байтовым числом.

FFFFFFFFFH - это предельный размер логического раздела жесткого диска.

Адреса и соответствующие им значения признака следующие:

00h - признак активного раздела.
01h - то, что содержится в этой записи.
02h-03h - номер начала дорожки и начала сектора раздела.
04h - тип раздела. 12-битная или 16-битная FAT - расширенный том или гигантский том.
05h - номер последней строки раздела.
06h-07h - номер последней дорожки и последнего сектора раздела.
08h-0bh - номер 1-го сектора раздела относительно 1-го сектора диска.
0ch-0fh - длина раздела в секторах.

В нулевом секторе каждого логического диска размещается загрузочная запись, которая состоит из загрузочной программы, которая передает управление загрузчику конкретной операционнной системы. Она предваряется блоком BPB (BIOS Parameter Block), в котором описано количество головок чтения-записи, размер сектора на диске, число секторов на кластер, на дорожку и в логическом разделе.

Пример:

Параметр Значение
число байт на сектор 512
число секторов на кластер 16
число зарезервированных секторов 1
число записей в корневом каталоге 512
число секторов на диске -
байт описания носителя по адресу F8H F8H
число секторов в FAT 252
число секторов на дорожку 63
число сторон диска 16
число скрытых секторов 63
число секторов логического диска 1032139
метка диска -
идентификатор файловой системы FAT16
конец загрузочной записи 55AAh (метка)

Таблица размещения файлов (File allocation table - FAT)

FAT находится вслед за загрузочным сектором, и в ней описано физическое размещение всех файлов на диске. За FAT следует ее копия. В таблице размещения файлов столько записей, сколько кластеров на диске.Если объем диска больше 128 Мб, то используется 16-битовый формат FAT по 16 секторов в кластере. 16-битовая FAT описывает не более 65536 кластеров. Две первые записи в FAT зарезервированы для описания формата диска. Поэтому первый кластер в области дисковых данных пронумерован числом 2. Если в ячейке FAT записан 00h, то это значит, что кластер пуст.

Значение FF7h соответствует дефектному кластеру.

FF0h - соответствует зарезервированному кластеру.

FF8h-FFFh - соответствует EOF, обозначает последний кластер файла.

Любое другое значение записи в FAT соответствует номеру следующего за ним по счету кластера текущего файла. Номер начального кластера файла мы узнаем из соответствующей этому файлу записи в каталоге.

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

Пример:

На 503 Мб объема диска, содержащего 6500000000 файлов, остается неиспользованым 26 Мб дискового пространства.

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

Корневой каталог

Корневой каталог располагается за второй копией FAT и состоит из 512 32-битных записей, каждая из которых содержит информацию о файле или подкаталоге. Номер начального кластера в записи каталога является отпровной точкой для отслеживания файла по цепочке номеров в ячейках FAT. При удалении файла соответствующая ему запись не освобождается. Ее первый символ замещается на байт с номером 229 (X - русская кодировка)

Под значение размера файла в записи каталога отведено 4 байта. Следовательно, размер файла в MS-DOS 4 Гб.

Назад | Содержание | Вперед