Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Реализация ввода-вывода в Windows 2000




 

Основная функция менеджера ввода-вывода за­ключается в создании каркаса, в котором могут работать различные устройства вво­да-вывода. Структуру каркаса образуют набор независимых от устройств процедур для определенных аспектов ввода-вывода и набор загруженных драйве­ров для общения с устройствами.

Чтобы гарантировать, что драйверы устройств хорошо работают с остальной час­тью системы Windows 2000, корпорация Microsoft определила для драйверов мо­дель Windows Driver Model, которой драйверы устройств должны соответство­вать. Более того, корпорация Microsoft также предоставляет набор инструментов, который должен помочь разработчикам драйверов в создании драйверов, соответ­ствующих модели Windows Driver Model. Согласующиеся с ней драйверы должны удовлетворять всем сле­дующим требованиям (а также некоторым другим):

1. Обрабатывать входящие запросы ввода-вывода, поступающие в стандарт­ном формате.

2. Основываться на объектах, как и остальная часть системы Windows 2000.

3. Позволять динамическое добавление или удаление устройств plug-and-play.

4. Допускать, когда это возможно, управление энергопотреблением.

5. Допускать реконфигурацию в терминах использования ресурсов.

6. Быть реентерабельными для возможности их использования на мультипро­цессорах.

Запросы ввода-вывода передаются драйверам в виде стандартизированных пакетов, называемых IRP (Input/output Request Packet – пакет запроса ввода-вывода). Драйверы, согласующиеся с моделью Windows Driver Model, должны уметь обрабатывать пакеты IRP. Драйвер должен поддерживать работу с объекта­ми, то есть поддерживать определенный список методов, к которым может обра­щаться остальная система. Он также должен корректно работать с другими объек­тами операционной системы Windows 2000, доступ к которым осуществляется при помощи дескрипторов объектов.

Драйверы, согласующиеся с моделью Windows Driver Model, должны полнос­тью поддерживать устройства plug-and-play. Это означает, что если устройство, управляемое драйвером, внезапно добавляется в систему или удаляется из систе­мы, драйвер должен быть готов к получению данной информации и корректной реакции на эту информацию, даже в том случае, если устройство удаляется в момент обращения к нему. Также драйверы должны поддерживать управление энергопот­реблением для тех устройств, для которых это возможно. Например, если система решает, что теперь пора перейти в режим низкого энергопотребления, все драйве­ры должны поддерживать этот режим, чтобы сберегать энергию. Они также долж­ны поддерживать обратный переход в режим нормального функционирования.

Драйвер должен быть настраиваемым, что означает отсутствие каких бы то ни было встроенных предположений о линиях прерываний или портах ввода-выво­да, используемых определенным устройством. Драйверы устройств также должны работать на многороцессорных машинах, так как под­держка многопроцессорности была заложена в операционную систему Windows 2000 при разработке. Это требование означает, это во время обработки драйвером запро­са от одного центрального процессора может прийти запрос от другого центрально­го процессора. Второй центральный процессор может начать выполнение програм­мы драйвера одновременно с первым центральным процессором. Драйвер должен функционировать корректно, даже когда он вызывается одновременно двумя и более центральными процессорами. Это означает, что доступ ко всем чувствитель­ным структурам данных должен предоставляться только внутри критических об­ластей. Простое предположение, что других обращений к драйверу не будет, пока не завершится обработка текущего обращения к нему, недопустимо.

В операционной системе UNIX обращение к драйверам производится по номеру главного устройства. В Windows 2000 применяется другая схема. Во время загруз­ки операционной системы или в тот момент, когда в систему добавляется новое устройство plug-and-play, поддерживающее установку системы без перезагрузки, операционная система Windows 2000 автоматически обнаруживает его и вызывает менеджер plug-and-play. Менеджер plug-and-play запрашивает у устройства назва­ние фирмы-производителя и номер модели устройства. Вооружившись данными сведениями, он ищет драйвер для данного устройства в определенном каталоге на жестком диске. Если этого драйвера нет, он отображает диалоговое окно, в котором пользователю предлагается вставить гибкий диск или CD-ROM с драйвером. Ког­да драйвер обнаружен, он загружается в память.

Каждый драйвер должен поставлять набор процедур, которые могут быть вы­званы для получения требуемого обслуживания. Первая процедура, называемая DriverEntry, инициализирует драйвер. Она вызывается сразу после загрузки драйве­ра. Процедура может создавать таблицы и структуры данных, но не должна обращать­ся к самому устройству. Она также заполняет некоторые поля объекта драйвера, созданного менеджером ввода-вывода при загрузке драйвера. Поля в объекте драй­вера включают указатели на все остальные процедуры, предоставляемые драйвером.

Кроме того, для каждого устройства, управляемого драйвером (например, для каждо­го диска IDE, управляемого драйвером диска IDE), создается объект устройства и инициализируется так, чтобы он указывал на объект драйвера. При наличии объекта устройства можно легко найти объект драйвера и, таким образом, обращаться к его методам.

Вторая процедура драйвера называется AddDevice. Она вызывается менедже­ром plug-and-play всего один раз для каждого добавляемого устройства. После этого драйвер вызывается первым пакетом IRP, который устанавливает вектор прерываний и инициализирует аппаратуру. Кроме того, драйвер должен содержать процедуру обработки прерываний, различные процедуры, управляющие таймера­ми, путь быстрого ввода-вывода, управление DMA, позволять прервать исполня­ющийся текущий запрос и многое другое.

В Windows 2000 драйвер должен сам выполнять всю работу. С другой сто­роны, в системе Windows 2000 могут существовать стеки драйверов. Это означает, что запрос может проходить через целую последовательность драйверов, каждый из которых выполняет свою часть работы. Стеки драйверов позволяют отделить управление шиной от управления соб­ственно устройством. Например, управление шиной PCI отличается большой сложностью, что вызвано большим количеством режимов и транзакций шины. Таким образом, отделение управления шиной от управления устройством, подключенным к данной шине, облегчает работу по созданию драйвера. Программисту, пишущему драйвер устройства, более не нужно изучать вопрос управления шиной. Он может просто использовать стандартный драйвер шины, находящийся в стеке драйверов. У драй­веров USB и SCSI есть части, специфичные для конкретных устройств, и общая часть, для которой используются отдельные драйверы.

Кроме того, стеки драйверов позволяют добавлять в стек драйверы-фильтры. Фильтрующий драйвер выполняет некоторые преобразования проходящих через них данных. Например, фильтрующий драйвер может сжать данные по пути к дис­ку или зашифровать их по дороге в сеть. Помещение драйверного фильтра в стек драйверов означает, что ни прикладная программа, ни настоящий драйвер устрой­ства не должны знать о присутствии фильтрующего драйвера и что фильтрующий драйвер работает автоматически для всех данных, поступающих с устройства или на устройство.

 

8.5. Файловые системы Windows 2000

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных