Факультет: Информатика и системы управления

Кафедра: Программное обеспечение ЭВМ и информационные технологии

Курсовая работа

 

на тему: Разработка драйвера виртуального жесткого диска


СОДЕРЖАНИЕ

СОДЕРЖАНИЕ. 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.



Информация о работе «Разработка драйвера виртуального жесткого диска»
Раздел: Информатика, программирование
Количество знаков с пробелами: 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 комментариев


Наверх