Факультет: Информатика и системы управления
Кафедра: Программное обеспечение ЭВМ и информационные технологии
Курсовая работа
на тему: Разработка драйвера виртуального жесткого диска
СОДЕРЖАНИЕ
СОДЕРЖАНИЕ. 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
ВВЕДЕНИЕ
В настоящее время все усложняются программные продукты и комплексы, что приводит к росту объема обрабатываемых данных, усложнению структуры их представления и хранения на компьютере. Все это приводит к повышению требований к скорости чтения и записи данных из файлов а также уменьшению времени доступа к каждому файлу в отдельности.
Самым распространенным устройством для хранения данных в настоящее время является жесткий диск, который умеет хранить большие объемы данных. Время доступа к произвольному месту на диске зависит от скорости перемещения считывающей головки. Но быстродействие механики диска имеет предел, и время ответа для жесткого диска на несколько порядков выше, чем для оперативной памяти. Поэтому производительность при множественных операциях чтения и записи к различным данным катастрофически падает.
Для решения данной проблемы существуют следующие средства повышения производительности. Все записываемые и считываемые данные не сразу пишутся на диск, а сохраняются в определенной области оперативной памяти - кэше. Но размер кэша не большой и в нем сохраняются только несколько или самых последних операций чтения записи или самых частых, в зависимости от стратегии кэширования.
Однако буферизация только на основе оперативной памяти в подсистеме ввода-вывода оказывается недостаточной — разница между скоростью обмена с оперативной памятью, куда процессы помещают данные для обработки, и скоростью работы внешнего устройства часто становится слишком значительной, чтобы в качестве временного буфера можно было бы использовать оперативную память — ее объема может просто не хватить. Для таких случаев необходимо предусмотреть особые меры, и часто в качестве буфера используется дисковый файл, называемый также спул-файлом (от spool — шпулька, тоже буфер, только для ниток). Типичный пример применения спулинга дает организация вывода данных на принтер. Для печатаемых документов объем в несколько десятков мегабайт — не редкость, поэтому для их временного хранения (а печать каждого документа занимает от нескольких минут до десятков минут) объема оперативной памяти явно недостаточно.
Другой подход для хранения данных в памяти – создание Ram дисков. В систему добавляется виртуальный диск, а образ диска расположен в оперативной памяти. Такой подход позволяет повысить быстродействие, когда приложение использует обращения случайного чтения, случайной записи. Так например, значительную часть всех обращений к данным в современных СУБД составляют случайные запросы на чтение данных. Другое преимущество виртуальных дисков – их можно использовать для бездисковых рабочих станций для промежуточных файлов.
1. АНАЛИТИЧЕСКИЙ РАЗДЕЛ
1.1 Постановка задачиК разрабатываемому драйверу виртуального диска предъявляются следующие требования:
1. Разрабатываемый драйвер должен добавлять в операционную систему новый виртуальный диск
2. Для увеличения скорости передачи, драйвер должен работать в блочном режиме передачи данных
3. Драйвер должен быть конфигурируемым, для драйвера можно задать имя, которое присваивается диску и его размер
4. Драйвер должен определять объем свободной физической памяти и ограничивать размер создаваемого виртуального диска.
5. Драйвер может динамически выгружаться из системы и загружаться в нее без необходимости перезагружать компьютер
6. Поскольку операции чтения записи, создания, переименования и удаления файлов выполняет драйвер файловой системы, то нужно обеспечивать считывание и запись необходимых файловой системе данных.
7. Работа драйвера не должна влиять на работу других драйверов.
1.2 Архитектура Windows 2000Наиболее распространены реализации Windows 2000 для платформы Intel x86 в одно- или многопроцессорных конфигурациях, однако существуют также версии для DEC Alpha и MIPS. Данная операционная система использует защищённый режим центрального процессора, реализует механизмы виртуальной памяти и многопоточности.
Исполняемый код в Windows 2000 может исполняться в двух уровнях привилегий: пользовательском режиме и режиме ядра. Уровень привилегий накладывает определённые ограничения: в пользовательском режиме не могут выполняться привилегированные инструкции процессора и не разрешено обращение к защищённым страницам в памяти. Эти ограничения накладываются для обеспечения безопасности работы системы. Пользовательское приложение не должно иметь возможность — в результате ошибки или преднамеренно — вносить изменения в критические таблицы операционной системы или в память других приложений. В частности, такие ограничения запрещают пользовательскому приложению напрямую управлять внешними устройствами, потому что каждое из них является разделяемым ресурсом.
В Windows 2000 обеспечение обмена данными и управление доступом к внешнему устройству как к разделяемому ресурсу возлагается на его драйвер. Ввод и вывод в драйверах осуществляется пакетами — IRP (Input/Output Request Packet). Запросы на ввод/вывод, посылаемые приложениями или другими драйверами, обрабатываются драйвером, после чего запрашивающей программе в том же пакете посылается статус завершения операции. Общий принцип взаимодействия проиллюстрирован на рис. 1.
Рис. 1. Архитектура ввода/вывода Windows 2000.
... загрузочные сектора жестких дисков. Физическое и логическое подключение жестких дисков Какие же необходимо подключить разъемы и установить перемычки и другие операции при физической установке накопителя на жестких дисках? Это - интерфейсный шлейф, кабель питания, перемычки выбора статуса логического устройства и, возможно, индикатор состояния устройства (обращения к устройству), а также ...
... случае драйвера устройства, поддерживающего только один тип носителя (например драйвер RAM-диска), содержимое BPB может быть закодировано в теле самого драйвера. К несчастью, при работе с реальными дисками, включая жесткие диски, не все так просто и драйвер обязан определять содержимое BPB. Как правило, BPB является частью блока начальной загрузки, как показано на рис.6-7. В этом ...
аучного цикла является отсутствие возможности реальной постановки учебного, и лабораторного эксперимента. Хотя в настоящее время имеются разработки виртуальных лабораторных практикумов, однако окончательно решение проблемы требует пристального внимания специалистов различных профилей, в том числе и психолого-педагогического. 1.2 Роль технологии виртуальных приборов обучения в техническом вузе ...
... ) ФАКУЛЬТЕТ ЭЛЕКТРОНИКИ И ПРИБОРОСТРОЕНИЯ КАФЕДРА КЭС группа Э-92 ДАТА ЗАЩИТЫ апреля 1997 г. Отзыв на дипломную работу студента гр.Э-92 Сорокина Ю.В. “Разработка программы контроллера автоматически связываемых объектов для управления конструкторской документацией в среде Windows 95/NT”. Широкое использование вычислительной техники в народном хозяйстве требует увеличения производства и ...
0 комментариев