Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Определение количества секторов.

Поиск

3. Определение количества секторов.

 

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

 

    3.1. Определение через Partition Table (прямое обозначение)

 

 

    Значение «Number of Sectors» в размере 1023057 соответствует искомому нами значению количества секторов используемых в рабочем томе.

 


 

3.2. Определение через Partition Table (через описание байтовой структуры таблицы разделов диска)

 

 

       Данные структуры таблицы разделов диска начинаются с ячейки 1BEh
и содержат 4 пакета данных по 16 байт для каждого раздела диска.
В нашем примере мы видим, что только первые шестнадцать байт
имеют какую-то размерность. Остальные 48 байт заполнены нулевыми значениями. Исследуем их.

 

    Возьмем данные из нашего скриншота (всего 16 байт):

 

80 01 01 00 06 0F FF F6 3F 00 00 00 51 9C 0F 00

 
и интегрируем их в нашу таблицу 6.1 из методических материалов.

 

Структура таблицы разделов диска

 

Методические данные

Исследуемые нами величины

Смещение,

байт

Длина,

байт

Содержимое

Значение

Обозначение

1-й раздел диска

+00

 

 

Флаг загрузки :

0 – не загружаемый,

80h – загружаемый (Bootable)

 

загружаемый

+01

Начало раздела:

HdS (№ головки)

 

1 головка

+02

Начало раздела:

Sec (№ сектора – 6 младших битов)

Cyl (№ цилиндра – 10 старших битов)

01 00

Трансформируем

0001h

0000000000000001b

+04

 

Код системы:

1 – DOS (FAT-12);

4 – DOS (FAT-16)

 

BIGDOS

+05

 

Конец раздела:

HdE (№ головки)

 

0F

15 головка

+06

Конец раздела:

Sec (№ сектора – 6 младших битов)

Cyl (№ цилиндра – 10 старших битов)

 

FF F6

Трансформируем

F6FFh

11110110 11111111b

3F6h = 1014d

00111111b = 63b

 

+08

 

Абсолютный номер начального сектора раздела:

 

(соответствует номерам сектора, головки и цилиндра начала раздела)

 

Cyl * сект./дор. * дор./цил. + Hds * сект./дор. + ( Sec –1)

 

 

3F 00 00 00

Трансформируем

0000003Fh

+0Ch

 

Общее количество секторов раздела

(соответствует номерам сектора, головки и цилиндра начала раздела)

 

Cyl * сект./дор. * дор./цил. + Hds * сект./дор. + ( Sec –1)

 

 

51 9C 0F 00

Трансформируем

000F9C51h

1023057 байт

2-й раздел диска

Нет информации

Все значения 00

Диск (том)

не определен

3-й раздел диска

Нет информации

Все значения 00

Диск (том)

не определен

4-й раздел диска

Нет информации

Все значения 00

Диск (том)

не определен

 

Таким образом, нам удалось получить данные об общем количестве секторов записанные в структуру таблицы разделов диска со смещения +0Ch
и оно равно значению 51 9C 0F 00, что в переводе из внутреннего машинного формата представления соответствует значению 000F9C51h
в шестнадцатеричной системе счисления. В десятеричной системе счисления это значение равно 1023057 байт.

 

3.3. Определение через Partition Table (через разницу значений  
крайних положений CHS – цилиндр, головка, сектор)

Ранее мы определили адрес начального сектора первого раздела диска. Повторно приведем расчет.

 

HDS.total = 16 (0-15)

SPT.total = 63

H.start = 1 

C.start = 0 

S.start = 1          

 

LBA.start = C.start * HDS*SPT + H.start * SPT + S.start - 1

 

LBA.start = 0 * 16*63 + 1 * 63 + 1 – 1 = 63 ( 3Fh ) сектор

 

 

Проведем расчеты для конечных параметров первого раздела диска (данные берем из 5-7 байтов смещения 1 записи таблицы разделов диска).

 

H.end = 15

C.end = 1014      

S.end = 63          

HDS.total = 16 (0-15)

SPT.total = 63

 

LBA.end = C.end * HDS*SPT + H.end * SPT + S.end - 1

 

LBA.end = 1014*16*63 + 15*63 +(63-1) = 1 023 119 сектор

 

Вычисляем разницу конечного и начального значений для первого раздела:

 

Размер диска равен 1 023 119 – 63 + 1 = 1 023 057 секторов

 
Что соответствует значению  000F 9C51h в шестнадцатеричной системе исчисления.

 

 


[1] Формулы взяты с сайта https://ru.wikipedia.org/wiki/LBA

 



Поделиться:


Последнее изменение этой страницы: 2024-06-17; просмотров: 5; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.225.54.147 (0.007 с.)