Драйвер виртуального диска - Курсовая работа

бесплатно 0
4.5 50
Многослойная архитектура драйверов. Организация внутреннего хранения данных диска. Выбор и обоснование языка и среды программирования. Обработка расширенных запросов. Процедуры установки драйвера виртуального диска. Блокировка выгрузки устройства.


Аннотация к работе
Все это приводит к повышению требований к скорости чтения и записи данных из файлов а также уменьшению времени доступа к каждому файлу в отдельности. Время доступа к произвольному месту на диске зависит от скорости перемещения считывающей головки. Но быстродействие механики диска имеет предел, и время ответа для жесткого диска на несколько порядков выше, чем для оперативной памяти. Все записываемые и считываемые данные не сразу пишутся на диск, а сохраняются в определенной области оперативной памяти - кэше. Однако буферизация только на основе оперативной памяти в подсистеме ввода-вывода оказывается недостаточной - разница между скоростью обмена с оперативной памятью, куда процессы помещают данные для обработки, и скоростью работы внешнего устройства часто становится слишком значительной, чтобы в качестве временного буфера можно было бы использовать оперативную память - ее объема может просто не хватить.К разрабатываемому драйверу виртуального диска предъявляются следующие требования: Разрабатываемый драйвер должен добавлять в операционную систему новый виртуальный диск Для увеличения скорости передачи, драйвер должен работать в блочном режиме передачи данных Драйвер должен быть конфигурируемым, для драйвера можно задать имя, которое присваивается диску и его размер Драйвер должен определять объем свободной физической памяти и ограничивать размер создаваемого виртуального диска. Драйвер может динамически выгружаться из системы и загружаться в нее без необходимости перезагружать компьютерКаждый драйвер в стеке изолирует аппаратно зависимые возможности от вышестоящего уровня. Они обрабатывают запросы пользователя или других приложений и вызывают или подсистему Win 32 или клиент драйвер пользовательского режима. Клиент драйвер пользовательского режима обрабатывает запросы от приложений или от подсистемы Win32. При получении запросов, которые требуют обработки в режиме ядра, он вызывает нужный клиент драйвер режима ядра или процедуру обработки запроса через подсистему Win32. Клиент драйвер режима ядра обрабатывает запросы подобно клиент драйверу в режиме пользователя, за исключением того, что обработка идет в режиме ядра.Классовые и фильтр-драйвера для устройств хранения предоставляют интерфейс взаимодействия между драйверами высокого уровня, расположенными в стеке над ними, и порт-драйвером предоставляемым операционной системой. Подсистема формирует пакет запроса на ввод/вывод(IRP), который приходит классовому драйверу устройства ввода вывода через один или несколько промежуточных драйверов фильтров верхнего уровня(таких как например драйвер файловой системы). Классовый драйвер ввода вывода дополняет полученный пакет IRP дополнительным SCSI блоком запроса (SRB) и посылает запрос порт драйверу через фильтр драйверы нижнего уровня.Для того, чтобы начать работу с диском, диск разбивается на разделы. Раздел - это непрерывная часть физического диска, которую операционная система представляет пользователю как логическое устройство (используются также названия логический диск и логический раздел). В частном случае, когда все дисковое пространство охватывается одним разделом, логическое устройство представляет физическое устройство в целом. Исходя из того, что объем диска ограничен объемом имеющейся свободной оперативной памяти, то нецелесообразно разбивать виртуальный диск на несколько разделом. Создание одного логического раздела позволяет упростить логику устройства и сэкономить место, которое используется для описания каждого раздела.Драйвер реализуется как набор процедур, каждая из которых предназначена для реализации отдельного типа обращений к драйверу со стороны диспетчера ввода/вывода. Процедуры, которые необходимо поддерживать классовому драйверу приведены в таблице 1. Здесь драйвер регистрирует свои остальные точки входа и выполняет свою общую инициализацию. ADDDEVICE Здесь создается объект-устройство, соответствующий полученному уведомлению от менеджера устройств, и выполняется инициализация данных, специфичных для данного устройства.Следует учесть тот факт, что при запросах на чтение /запись данных, в качестве параметров указывается : смещение в байтах с которого начинается передача данных (которое и служит индексом первого байта для чтения) и количество байт для передачи. Таким образом, виртуальный диск будет храниться в памяти как одномерный массив байт заданного размера. Следующим шагом выберем, каким образом мы зарезервируем память для диска. Существуют следующие типы резервируемой памяти: Страничная память(Paged memory) - виртуальная память, которая может быть перемещена системой на жесткий диск в любой момент времени. В случае, если приложение обратиться к отсутствующей в физической памяти области своей виртуальной памяти, то возникает исключение по отсутствию страницы в памяти.Пользовательский процесс, вызывая функцию API (например, WRITEFILE), передает ей указатель на буфер, в котором размещается записываемая информация. Однако, передаваемый виртуальный адрес действительно будет указывать на записы

План
СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. АНАЛИТИЧЕСКИЙ РАЗДЕЛ

1.1. Постановка задачи

1.2. Архитектура Windows 2000

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

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

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

2. КОНСТРУКТОРСКИЙ РАЗДЕЛ

2.1. Структура классового драйвера

2.2. Организация внутреннего хранения данных диска

2.3. Доступ к передаваемым данным

2.4. Обработка запросов Plug and Play

2.5. Обработка расширенных запросов

2.6. Структура драйвера

2.7. Расчет геометрии диска

3. ТЕХНОЛОГИЧЕСКИЙ РАЗДЕЛ

3.1. Выбор и обоснование языка и среды программирования

3.2. Структуры данных классового драйвера

3.3. Блокировка выгрузки устройства

3.4. Процедуры драйвера виртуального диска

3.4.1. Инициализация драйвера

3.4.2 Обработка запросов записи/чтения

3.4.3. Обработка расширенных запросов

3.4.4. Обработка запросов Plug and Play

3.4.5. Выгрузка драйвера

3.5. Программа настройки параметров виртуального диска

3.6. Установка драйвера

4. ЭКСПЕРИМЕНТАЛЬНО-ИССЛЕДОВАТЕЛЬСКИЙ РАЗДЕЛ

4.1. Описание экспериментов

4.2. Результаты экспериментов

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?