Факультет: Информатика и системы управления
Кафедра: Программное обеспечение ЭВМ и информационные технологии
Курсовая работа
на тему: Разработка драйвера виртуального жесткого диска
СОДЕРЖАНИЕ
СОДЕРЖАНИЕ. 1
ВВЕДЕНИЕ. 2
1. АНАЛИТИЧЕСКИЙ РАЗДЕЛ.. 4
1.1 Постановка задачи. 4
1.2 Архитектура Windows 2000. 4
1.3 Многослойная архитектура драйверов. 5
1.4 Архитектура драйверов устройств хранения. 8
1.5 Выбор файловой системы.. 9
2. КОНСТРУКТОРСКИЙ РАЗДЕЛ.. 11
2.1 Структура классового драйвера. 11
2.2 Организация внутреннего хранения данных диска. 12
2.3 Доступ к передаваемым данным. 13
2.4 Обработка запросов Plug and Play. 14
2.5 Обработка расширенных запросов. 15
2.7 Расчет геометрии диска. 16
2.6 Структура драйвера. 17
3. ТЕХНОЛОГИЧЕСКИЙ РАЗДЕЛ.. 18
3.1 Выбор и обоснование языка и среды программирования. 18
3.2 Структуры данных классового драйвера. 18
3.3 Блокировка выгрузки устройства. 19
3.4 Процедуры драйвера виртуального диска. 19
3.4.1 Инициализация драйвера. 19
3.4.2Обработка запросов записи/чтения. 22
3.4.3 Обработка расширенных запросов. 24
3.4.4 Обработка запросов Plug and Play. 26
3.4.5 Выгрузка драйвера. 28
3.5 Программа настройки параметров виртуального диска. 29
3.6 Установка драйвера. 29
4. ЭКСПЕРИМЕНТАЛЬНО-ИССЛЕДОВАТЕЛЬСКИЙ РАЗДЕЛ.. 31
4.1 Описание экспериментов. 31
4.2 Результаты экспериментов. 31
ЗАКЛЮЧЕНИЕ. 32
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ.. 33
ВВЕДЕНИЕ
В настоящее время все усложняются программные продукты и комплексы, что приводит к росту объема обрабатываемых данных, усложнению структуры их представления и хранения на компьютере. Все это приводит к повышению требований к скорости чтения и записи данных из файлов а также уменьшению времени доступа к каждому файлу в отдельности.
Самым распространенным устройством для хранения данных в настоящее время является жесткий диск, который умеет хранить большие объемы данных. Время доступа к произвольному месту на диске зависит от скорости перемещения считывающей головки. Но быстродействие механики диска имеет предел, и время ответа для жесткого диска на несколько порядков выше, чем для оперативной памяти. Поэтому производительность при множественных операциях чтения и записи к различным данным катастрофически падает.
Для решения данной проблемы существуют следующие средства повышения производительности. Все записываемые и считываемые данные не сразу пишутся на диск, а сохраняются в определенной области оперативной памяти - кэше. Но размер кэша не большой и в нем сохраняются только несколько или самых последних операций чтения записи или самых частых, в зависимости от стратегии кэширования.
Однако буферизация только на основе оперативной памяти в подсистеме ввода-вывода оказывается недостаточной — разница между скоростью обмена с оперативной памятью, куда процессы помещают данные для обработки, и скоростью работы внешнего устройства часто становится слишком значительной, чтобы в качестве временного буфера можно было бы использовать оперативную память — ее объема может просто не хватить. ............