1.2 Архитектура Windows 2000
Наиболее распространены реализации Windows 2000 для платформы Intel x86 в одно- или многопроцессорных конфигурациях, однако существуют также версии для DEC Alpha и MIPS. Данная операционная система использует защищённый режим центрального процессора, реализует механизмы виртуальной памяти и многопоточности.
Исполняемый код в Windows 2000 может исполняться в двух уровнях привилегий: пользовательском режиме и режиме ядра. Уровень привилегий накладывает определённые ограничения: в пользовательском режиме не могут выполняться привилегированные инструкции процессора и не разрешено обращение к защищённым страницам в памяти. Эти ограничения накладываются для обеспечения безопасности работы системы. Пользовательское приложение не должно иметь возможность -- в результате ошибки или преднамеренно -- вносить изменения в критические таблицы операционной системы или в память других приложений. В частности, такие ограничения запрещают пользовательскому приложению напрямую управлять внешними устройствами, потому что каждое из них является разделяемым ресурсом.
В Windows 2000 обеспечение обмена данными и управление доступом к внешнему устройству как к разделяемому ресурсу возлагается на его драйвер. Ввод и вывод в драйверах осуществляется пакетами -- IRP (Input/Output Request Packet). Запросы на ввод/вывод, посылаемые приложениями или другими драйверами, обрабатываются драйвером, после чего запрашивающей программе в том же пакете посылается статус завершения операции. Общий принцип взаимодействия проиллюстрирован на рис. 1.
Рис. 1. Архитектура ввода/вывода Windows 2000.
- 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 Обработка расширенных запросов
- 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 Установка драйвера