Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Диски. Логическая структура жёсткого диска.



 

 

 


Структура логического диска.

Расположение структуры данных, несущее инфо о логич.организации диска и простейшую прогу, с помощью кот-ой можно находить и загружать проги загрузки той или иной ОС, очевидно – это самый 1 сектор жёст.диска.

Инфо на жёстк.дисках размещается и передаётся блоками. Каждый блок называется СЕКТОРОМ, сектора расположены на концентрических дорожках поверхности диска. Каждая дорожка образуется при вращении магн.диска под зафиксированной в некот. определ. положении головкой чт/записи.

Группы дорожек одного радиуса, расположенных на поверх-ях магн.дисков, образуют ЦИЛИНДРЫ. Современные ж.диски огут иметь по неск-ко десятков тысяч цилиндров.

Каждый сектор состоит из поля данных и поля служебной инфо. Размер сектора (точнее ёмкость поля данных) устанавливается контроллером или драйвером. Пользов.интер-с DOS поддерж-ет единств.размер сектора – 512 байт. BIOS (128,256,512,1024).

ФА сектора на диске определ-ся с помощью 3 координат [c-h-s], где c – номер цилиндра (дорожки на поверх-ти диска, cylinder), h – номер рабочей поверхн-ти (магнитной головки head), а s – номер сектора на дорожке.

Ж.диск м.б. разбит на неск-ко разделов, кот-ые затем могут испол-ся либо одной ОС, либо различными ОС. Причём самым главным является то, что на каждом разделе м.б. организована своя файловая система.

Разделы диска м.б. двух типов primary (первычный), и extended (расширенный). Макс.число primary-разделов=4. При этом на диске обязателен 1 primary раздел. Если их неск-ко, то только 1 из них м.б. активным. Иенно загрузчику, расположенному в активном разделе, передаётся управление при включении компа и загрузке ОС. Остальные primary-разделы в этом случае считаются невидимыми.

Согласно спецификациям на одном жёстком диске м.б. только один extended –раздел, кот-ый в совю очередь, м.б. разделён на большое кол-во подразделов – логических дисков.

Один из primery-разделдов д.б. активным, именно с него должна загружаться программа загрузки ОС, или так называемый менеджер загрузки, назначение которого – загрузить программу загрузки ОС из какого-нибудь раздела, и уже с её помощью загружать ОС.

По физическому адресу [0,0,1] на винчестере располагается главная загрузочкая запись (master boot record, MBR), содержащая внесистемный загрузчик (NSB), а также таблицу разделов (PT). Эта запись занимает ровно 1 сектор, она размещается в памяти, начиная с адреса 0:7C00h, после чего управление передаётся коду, содержащемуся в этом самом первом секторе магн.диска. Т.о., в самом 1 (стартовом) секторе физич.жёст.диска находится не обычная запись boot record, как на дискете, а master boot record.

MBR явл-ся основн.средством загрузки с ж.диска, поддерживаемым BIOS. В MBR наход-ся 3 важных эл-та:

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

· Таблица описания разделов диска. Располагается в MBR по смещению 0x1BE и занимает 64 байта.

· Сигнатура MBR. Последний 2 байта MBR должны содержть число AA55h. По наличию этой сигнатуры BIOS проверяет, что первый блок загружен успешно. Сигнатура эта выбрана не случайно. Её успешная проверка позволяет установить, что все линии передачи данных могут передавить и 0 и 1.

PT опис-ет размещ-е и характ-ки имеющихся на винте разделов. Можно сказать, что эта табл.разделов – одна из наиболее важных структур данных на ж.диске. Если эта таблица повреждена, то не только не будет загружаться ОС, но и перестанут быть доступными и данные, располож-ые на винте.

-(Описатель раздела)

Структура MBR. Из неё видно, что в начале этого сектора располагается программа анализа таблицы разделов и чтения первого сектора из активного раздела диска. Сама PT располагается в конце MBR, и для её описания каждого раздела в этой таблице отводится по 16 байт. 1-ым байтом в эл-те раздела идёт флаг активности раздела boot indicator (0 – не активен, 128 (80h) – активен). Он служит для определения, является ли раздел системным загрузочным и есть ли неоюходимость производить загрузку ОС с него при старте компа. Активным м.б. только 1 раздел. За флагом акт-ти раздела следует байт номера головки, с кот-ой начинается раздел. За ним следует 2 байта, означающие соответственно номер сектора и номер цилиндра загрузочного сектора, где располагается 10ый сектор загрузчика ОС. Затем следует кодовый идентификатор System ID (длиной 1 байт), указывающий на принадлежность данного раздела к той или иной ОС и установке на нём соответствующей файловой системы. За байтом кода ОС расположен байт номера головки конца раздела, за кот-ым идут 2 байта – номер сектора и номер цилиндра последнего сектора данного раздела.

Номера сектора и номер цилиндра секторов в разделах занимают по 6 и 10 бит соответственно. Ниже представлен формат записи.

Загрузчик non-boot system bootstrap служит для поиска с помощью PT активного раздела, копирования в ОП компбютера загрузчика system bootstrap из выбранного раздела и передачи ему управления, что позволяет осуществить загрузку ОС.

Вслед за сектором MBR размещаются собственно сами разделы. В процессе началь.загрузки сектора MBR, содержащего таблицу PT, работают программные модули BIOS. Началь.загрузка считается выполненной корректно, когда таблица разделов содержит допустимую инфо. Разбиение диска на разделы

 


 

Расширенный раздел DOS содержит вторичную запись MBR (secondary MBR, SMBR), в состав кот-ой вместо PT входит таблица логического диска (LTD), ей аналогичная.LTD описывает размещение и характеристики раздела, содержащего единственный логиич.диск, а также может специфицировать след.запись SMBR. След-но, если в расширенном разделе DOS создано K логич.дисков, то он содержит K экземпляров SMBR, связанных в список. Каждый элемент списка описывает соответств.логич.диск и ссылается (кроме последнего) на следующий эл-т списка.

Коротко: Процедура нач.загрузки (bootstrap loader) вызывается как программное прерывание (DIOS INT 19h). Эта процедура определяет первое готовое устройство из списка разрешенных и доступных (гибкий или ж.диск, в совр.компах м.б. CD-ROM и др.) и пытается загрузить с него в ОЗУ короткую главную программу-загрузчик. Для винтов – это загрузчик non-system bootstrap из MBR, и ему передается управление. Главный загрузчик определяет на диске активный раздел, загружает его собственный загрузчик (system bootstrap) и передает управление ему. И, наконец, этот загрузчик загружает необходимые файлы ОС и передаёт ей управление.


 

8) Диски. Структура логического диска с файловой системой FAT (File Allocation Table)

На файловой системе FAT логическое дисковое пространство любого логического диска делится на 2 области: системную обл-ть и обл-ть данных.

Системная обл-ть лог.диска создаётся и инициализируется при форматировании, а впоследствии обновляется при манипулирвоании файловой структурой. Область данных лог. диска содержит файлы и каталоги, подчинённые корневому. Она, в отличие от системной области, доступна через пользов-кий инт-фейс DOS. Системная область состоит из след.компонентов, расположенных в лог.адресном пространстве подряд:

· загрузочная запись (boot record, BR)

· зарезервированные сектора (reserved sector, ResSecs)

· таблица размещения файлов (file allocation table, FAT)

· Корневой каталог (root directory, RDir)

Таблица размещения файлов явл-ся оч.важной информационной структурой. Можно сказать, что она представляет собой карту (образ) области данных, в кот-ой описывается состояние каждого участка области данных. Обл.данных разбивают на кластеры. Кластер представляет собой один или несколько смежных секторов в лог.дисковом адресном пространстве (точнее только в области данных). В FAT кластеры, принадлежащие одному файлу связываются в цепочки. Для указания номера кластера в системе управления файлами FAT-16 используется 16-битовое слово, следов-но, можно иметь до 216=65536 кластеров (от 0 до 65535)

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

Соотношения между размером раздела и размером кластеров в FAT 16

Ёскость раздела, Мбайт Кол-во сект-ов в кластере Размер кластеров, Кбайт
16-127 4 2
128-255 8 4
256-511 16 8
512-1023 32 16
1024-2047 64 32

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

Лог.разбиение обл.данных на кластеры как совокупности секторов взамен использования одиночных секторов имеет след.смысл: прежде всего, уменьшается размер самой FAT, уменьшается возможная фрагментация файлов, ускоряется доступ к файлу, т.к. в неск-ко раз сокращается длина цепочек фрагментов дискового пространства, выделенных для него.

Слишком большой размер кластера ведёт к неэффективному использованию области данных. В связи с чрезвычайной важностью FAT, она хранится в 2 экземплярах, 2-ой из кот-ых непосредственно следует за 1-ым. Обновляются копии FAT одновременно. Исопользуется же только 1-ый, 2 на всякий случай.

Упомянутый корневой каталог отличается от обычного каталога тем, что он, помимо размещения в фиксированном месте лог.диска, ещё имеет и фиксированной число эл-ов. Для каждого файла или каталога в файловой системе хранится инфо в соотв-ии со струк-рой, изображ.ниже

Размер поля данных, байт Содержание поля
11 Имя файла или каталога
1 Атрибуты файла
1 Резервное поле
3 Время создания
2 Дата создания
2 Дата посл.доступа
2 Зарезервировано
2 Время посл.модификации
2 Дата посл.модификации
2 Номер нач.кластера в FAT
4 Размер файла

 


 

9) Метод файлового дискриптора для работы с файлами

При методе файлового дескриптора DOS автоматически строит блок управления файлом при его открытии. Структура этого блока подобна структуре FCB. Блок строится в рабочих областях DOS и его адрес неизвестен пользовательской программе. Блок и соответствующий файл идентифицируется двухбайтовым номером, который DOS возвращает программе после открытия файла - этот номер называется файловым манипулятором или дескриптором. Во всех дальнейших обращениях к системным функциям используется дескриптор файла. Т.е. при открытии файла пользовательская программа сообщает DOS его имя и получает обратно номер, который служит логическим именем файла при всех дальнейших операциях с файлом. Необходимая для работы с файлом информация сохраняется в рабочих областях DOS. Можно указать не только устройство и имя файла, но и полную файловую спецификацию, включающую и путь к файлу. Таким образом доступны все файлы. Для всех системных функций, обслуживающих метод файлового дескриптора, файловая спецификация задается ASCIIZ цепочкой символов с максимальной длиной 63 байта. ASCIIZ цепочка - это цепочка ASCII символов, заканчивающаяся значением 00h.

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

ОТКРЫТИЕ И ЗАКРЫТИЕ ФАЙЛОВ

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

Таким образом, открывая файл, DOS назначает ему очередной свободный элемент (блок описания файла) специальной системной таблицы, называемой таблицей открытых файлов (System File Table, SFT) и располагаемой в оперативной памяти среди системных областей данных. По умолчанию при загрузке DOS формируется одна SFT, но при включении в файл CONFIG.SYS директивы FILES DOS создает вторую таблицу, связывая ее с первой.

Найдя в системе каталогов диска запись об открываемом файле, DOS записывает в выделенный ему элемент SFT основные характеристики файла.

БЛОК ОПИСАНИЯ ФАЙЛА

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

При всех дисковых операциях DOS использует собственные рабочие области - буфера. Обмен с дисками осуществляется секторами (512 байт) - по одному сектору в каждом буфере. Системные функции ввода-вывода переносят записи файла из буферов DOS в область пользовательской программы и обратно.

При открытии файл должен существовать. Указатель текущей позиции в файле - File pointer - устанавливается в начало файла. в AL задаются режимы.

Режим доступа - биты 0-2. Определяют права доступа программы к файлу: (000) - только для чтения; (001) - только для записи; (010) -для чтения и записи. Другие комбинации не допускаются.

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

Режим наследования - бит 7. Указывает, как файл может быть использован порожденным процессом. Если бит 7 равен 0, порожденный процесс наследует все открытые родительским процессом файлы в их текущем состоянии и с тем же режимом доступа. Если бит 7 равен 1, порожденный процесс выполняется как независимая программа и может работать с файлом в соответствии с режимом совместного использования, заданным при его открытии родительским процессом.

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

ЧТЕНИЕ И ЗАПИСЬ

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

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

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

Для файлов с постоянной длиной записи достаточно знать очередной номер логической записи для вычисления ее местоположения в файле и осуществления прямого чтения или записи.

Организовать прямой доступ к файлу позволяет наличие указателя файла в SFT. Указатель файла - это номер байта относительно начала файла, с которого начнется операция записи или чтения.

Пpи pаботе с диском на уpовне DOS к файлам и каталогам можно обpащаться только по именам. Местоположение файла на диске остается неизвестным. Hельзя обpатить к системным областям диска: загpузочным записям, FAT, каталогам. Для работы с этими областями, а также конкретными секторами и кластерами файлов используются либо функции драйвера BIOS (INT 13h), либо два специальных прерывания DOS - INT 25h и INT 26h, которые осуществляют доступ не к файлам, а к секторам диска.


 


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 303; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.037 с.)
Главная | Случайная страница | Обратная связь