Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Определение количества секторов.↑ ⇐ ПредыдущаяСтр 3 из 3 Содержание книги
Поиск на нашем сайте
3. Определение количества секторов.
Сектор – это весьма малая единица емкости дискового накопителя, и использование номера сектора в качестве логического адреса файла снижает эффективность использования дисков большой емкости. Поэтому для адресации файлов на промежуточном уровне модели дискового пространства используется другая, более крупная единица, называемая кластером.
3.1. Определение через Partition Table (прямое обозначение)
Значение «Number of Sectors» в размере 1023057 соответствует искомому нами значению количества секторов используемых в рабочем томе.
3.2. Определение через Partition Table (через описание байтовой структуры таблицы разделов диска)
Данные структуры таблицы разделов диска начинаются с ячейки 1BEh
Возьмем данные из нашего скриншота (всего 16 байт):
80 01 01 00 06 0F FF F6 3F 00 00 00 51 9C 0F 00
Структура таблицы разделов диска
Методические данные Исследуемые нами величины Смещение, байт Длина, байт Содержимое Значение Обозначение 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
3.3. Определение через Partition Table (через разницу значений Ранее мы определили адрес начального сектора первого раздела диска. Повторно приведем расчет.
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 секторов
[1] Формулы взяты с сайта https://ru.wikipedia.org/wiki/LBA
|
||||
Последнее изменение этой страницы: 2024-06-17; просмотров: 5; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.225.54.147 (0.007 с.) |