1.3 Многослойная архитектура драйверов

Рассмотрим как строится архитектура драйверов. Операционная система Windows® поддерживает многослойную архитектуру драйверов. Каждое устройство обслуживается цепочкой драйверов, называемой стеком драйверов. Каждый драйвер в стеке изолирует аппаратно зависимые возможности от вышестоящего уровня.

На рис. 2 показаны типы драйверов, которые могут обслуживать устройство. В действительности, некоторые из этих типов могут отсутствовать в стеке.

Рис. 2 Многослойная архитектура драйверов

1.      Над стеком находятся приложения. Они обрабатывают запросы пользователя или других приложений и вызывают или подсистему Win 32 или клиент драйвер пользовательского режима.

2.      Клиент драйвер пользовательского режима обрабатывает запросы от приложений или от подсистемы Win32. При получении запросов, которые требуют обработки в режиме ядра, он вызывает нужный клиент драйвер режима ядра или процедуру обработки запроса через подсистему Win32. Клиент драйвер реализуются как динамические библиотеки (DLL).

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

4.      Классовый и мини классовый драйвер устройства предоставляет основной набор сервисов обслуживания. Классовый драйвер предоставляет аппаратно независимую поддержку для специфичного класса устройств. Мини классовый драйвер обрабатывает отдельные операции для устройства из этого класса.

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

Мини порт-драйвер обрабатывает специфичные операции порт-драйвера.

6.      Драйвер аппаратной шины находится в самом низу стека. Microsoft предоставляет эти драйвера для всех шин, как часть операционной системы.

  1.4 Архитектура драйверов устройств хранения

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

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

Рис. 3 Архитектура драйверов устройств хранения

Запрос ввода/вывода от приложений пользователя обрабатывается подсистемой ввода/вывода. Подсистема формирует пакет запроса на ввод/вывод(IRP), который приходит классовому драйверу устройства ввода вывода через один или несколько промежуточных драйверов фильтров верхнего уровня(таких как например драйвер файловой системы).

Классовый драйвер ввода вывода дополняет полученный пакет IRP дополнительным SCSI блоком запроса (SRB) и посылает запрос порт драйверу через фильтр драйверы нижнего уровня.

Порт-драйвер полученные пакеты SRB преобразует к формату для передачи по аппаратной шине, и посылает их адаптеру главной шины (HBA), через драйвер вводы вывода шины и один или несколько фильтр драйверов.

Благодаря тому, что виртуальный диск не является реальным физическим устройством, нам не требуется производить доступ к аппаратной шине и формировать специальные пакеты SRB. Данные в оперативной памяти уже доступны на уровне классового драйвера; нецелесообразно и не нужно передавать IRP пакеты на нижний уровень.

Таким образом, требуется разработать классовый драйвер, в который будет происходить вся обработка запросов и обращение к данным диска для нашего класса устройств виртуального диска.

  1.5 Выбор файловой системы

Для того, чтобы начать работу с диском, диск разбивается на разделы. Раздел — это непрерывная часть физического диска, которую операционная система представляет пользователю как логическое устройство (используются также названия логический диск и логический раздел). Именно с логическими устройствами работает пользователь, обращаясь к ним по символьным именам, используя, например, обозначения А, В, С. В частном случае, когда все дисковое пространство охватывается одним разделом, логическое устройство представляет физическое устройство в целом.

Исходя из того, что объем диска ограничен объемом имеющейся свободной оперативной памяти, то нецелесообразно разбивать виртуальный диск на несколько разделом. Создание одного логического раздела позволяет упростить логику устройства и сэкономить место, которое используется для описания каждого раздела.

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

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

Отличительные свойства NTFS[2], то что она ориентирована для поддержки больших файлов, восстанавливаемости после сбоев и отказов программ и аппаратуры управления дисками – все это приводит к значительному размеру метаданных. Поэтому минимальный размер тома равен 10 Мб, а на практике использование NTFS оправдано для логических дисков от 400 Мб.

Файловая система FAT относится к ФС с глобальным индексом, и поэтому метаданные состоят из метки тома, глобальной таблицы диска и коневого каталога. Все остальное место свободное и отводится под создаваемые файлы и каталоги. Тот факт , что при каждой операции чтения/ записи идет обращение к таблице FAT не влияет на производительность, т.к. время доступа для оперативной памяти ничтожно мало по сравнению с жестким диском. Также существует несколько версия FAT: 12, 16 и 32. FAT 12 можно использовать на маленьких дисках от 1 Мб. Использование FAT 32 в основном предназначена для томов объемом в несколько Гб, и минимальный размер тома ограничен 512 Мб, этому она не подходит для виртуального диска.

Таким образом для нашего виртуального диска будет использоваться файловые системы FAT 12(когда объем диска не превышает 16 Мб) и FAT 16.



Информация о работе «Разработка драйвера виртуального жесткого диска»
Раздел: Информатика, программирование
Количество знаков с пробелами: 51692
Количество таблиц: 4
Количество изображений: 4

Похожие работы

Скачать
74754
2
0

... загрузочные сектора жестких дисков. Физическое и логическое подключение жестких дисков Какие же необходимо подключить разъемы и установить перемычки и другие операции при физической установке накопителя на жестких дисках? Это - интерфейсный шлейф, кабель питания, перемычки выбора статуса логического устройства и, возможно, индикатор состояния устройства (обращения к устройству), а также ...

Скачать
52525
8
0

... случае драйвера устройства, поддерживающего только один тип носителя (например драйвер RAM-диска), содержимое BPB может быть закодировано в теле самого драйвера. К несчастью, при работе с реальными дисками, включая жесткие диски, не все так просто и драйвер обязан определять содержимое BPB. Как правило, BPB является частью блока начальной загрузки, как показано на рис.6-7. В этом ...

Скачать
193894
73
12

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

Скачать
135709
1
0

... ) ФАКУЛЬТЕТ ЭЛЕКТРОНИКИ И ПРИБОРОСТРОЕНИЯ КАФЕДРА КЭС группа Э-92 ДАТА ЗАЩИТЫ  апреля 1997 г. Отзыв на дипломную работу студента гр.Э-92 Сорокина Ю.В. “Разработка программы контроллера автоматически связываемых объектов для управления конструкторской документацией в среде Windows 95/NT”. Широкое использование вычислительной техники в народном хозяйстве требует увеличения производства и ...

0 комментариев


Наверх