Компоненты подсистемы Plug and Play
У проекта Plug and Play было несколько основных задач, которые должны были решить сама спецификация и любые ее воплощения. Самая главная цель состояла в том, чтобы не только облегчить добавление к системе новых аппаратных средств или изменение конфигурации уже подключенных устройств, но и предельно упростить эти действия. Пользователи изменяют конфигурацию устройств быстрее, чем раньше и не испытывают при этом раздражения, а значит, гораздо меньше переживаний выпадает на долю групп поддержки, в которые обычно звонят пользователи, если у них что-то не получается. У разработчиков аппаратных средств появляется четкий стандарт, которому они могут следовать вместо того, чтобы пытаться самим решать все потенциальные проблемы, связанные с установкой и конфигурированием. В случае если все новые аппаратные средства будут разрабатываться в соответствии со стандартом Plug and Play, становится вполне реальной ситуация, при которой все, что останется сделать для добавления устройства к сис-теме – это подключить его и скопировать на жесткий диск все необходимое программное обеспечение. С существующим в настоящее время программным обеспечением достичь такого уровня простоты очень сложно, поскольку аппаратные средства не соответствуют стандарту Plug and Play. Впрочем, можно сделать очень многое в смысле улучшения программного обеспечения, и стандарт Plug and Play действительно способствует совершенствованию драйверов устройств, которые могут позволить существующим соответствующим ISA аппаратным средствам поддаваться управлению в среде Plug and Play.
Спецификация Plug and Play насчитывает пять целей:
1. Простота установки и конфигурирования новых устройств.
2. Единые динамические изменения конфигурации.
3. Совместимость с уже установленными устройствами.
4. Независимость от аппаратных средств и операционной системы.
5. Упрощенность и повышенная гибкость аппаратной реализации.
В пределах подсистемы Plug and Play взаимодействует множество модулей, основные из которых показаны на рисунке 3.20.
Функциональное назначение элементов:
1. Дерево аппаратных средств. Это база данных, в которой содержится информация о текущей конфигурации системы, стро-ится диспетчером конфигурации и хранится в памяти. Каждая вершина дерева называется узлом устройства (device node) и содержит логическое описание либо конкретного устройства, либо шины.
2. .INF-файлы – это набор дисковых файлов, содержащих информацию о конкретных типах устройств. Например, в файле SCSI.INF хранится информация обо всех известных SCSI-устройствах. В ходе установки нового устройства, соответствующего Plug and Play, будет использован новый .INF-файл. Обычно такой файл находится на дискете, поставляемой вместе с устройством.
Рис. 3.20. Составляющие подсистемы Plug and Play
3. Реестр. Дерево аппаратных средств, которое описывает устройства, входит в состав реестра Windows 9х как поддерево.
4. События – это набор функций API, используюемых для уведомления об изменениях текущей конфигурации системы. В Windows 9х о событиях сигнализирует система сообщений. В других реализациях о них может сообщать один из компонентов операционной системы.
5. Диспетчер конфигурации. Этот модуль отвечает за построение базы данных, в которой содержится информация о конфигурации компьютера, помещаемой в реестр, и за уведомление драйверов устройств о том, какие ресурсы им выделены. Диспетчер конфигурации при работе системы представляет собой центральный модуль подсистемы Plug and Play.
6. Энумератор (Enumerator). Это новый тип драйвера, взаимодействующий с драйвером устройства и с диспетчером конфигурации. Энумератор обслуживает конкретное устройство (обычно шину), к которому могут подключаться другие устройства. С каждым описанным в дереве аппаратных средств устройством шины связан свой энумератор. Особый энумератор (root enumerator), называемый корневым, входит в состав диспетчера конфигурации. Он помогает настраивать устройства, которые не соответствуют стандарту Plug and Play.
7. Арбитр ресурсов. Этот модуль отвечает за управление выделением конкретных ресурсов и предотвращение конфликтов.
8. Plug and Play BIOS. Новая системная BIOS, которая поддерживает действия Plug and Play. Любое устройство (например, видеоконтроллер) также может иметь свою BIOS, соответствующую стандарту Plug and Play. Кроме того, Plug and Play BIOS выступает в качестве энумератора для материнских плат, и в этом качестве играет важную роль при присоединении к докам портативных систем.
9. Драйверы устройств Plug and Play. Это драйверы защищенного режима, которые отвечают за управление устройствами и, кроме того, участвуют в работе подсистемы Plug and Play.
10. Интерфейс пользователя – набор стандартных диалоговых окон, служащих для получения информации в тех случаях, когда подсистеме Plug and Play для конфигурирования необходима помощь пользователя. Они дают пользователю возможность ознакомиться с конфигурацией системы, которую строит подсистема Plug and Play.
11. Приложение. С точки зрения стандарта Plug and Play, это написанная для Windows 9х программа, которая способна воспринимать и обрабатывать сообщения системы о смене конфигурации.
Деятельность подсистемы Plug and Play состоит, главным образом, в том, что она от имени различных устройств управляет четырьмя видами ресурсов:
1. Память. Речь идет о требованиях устройств к физической памяти, например, сколько страниц памяти нужно устройству и каковы ограничения по выравниванию.
2. Ввод-вывод. Это порты ввода-вывода, через которые будет происходить работа с устройством. Информация о конфигурации устройства включает перечень альтернативных наборов портов.
3. DMA – список необходимых устройству каналов прямого доступа к памяти и любых альтернативных каналов, которые оно может использовать.
4. IRO – требования устройства к линии запроса прерываний, альтернативные IRQ, а также сведения о том, может ли устройство использовать IRQ как разделяемый ресурс.
Подсистема Plug and Play включает множество модулей, написанных на Си и Ассемблере. Большинство своих компонентов система загружает динамически. Главным элементом подсистемы Plug and Play является дерево аппаратных средств, описывающее текущую конфигурацию системы.
Допустим, что не вносилось никаких изменений в конфигурацию системы с того момента, когда в последний раз с ней работали. Посмотрим, что произойдет, если включить питание.
1. Системная BIOS "заглядывает" в энергонезависимое запоминающее устройство (СМ OS) и определяет конфигурацию компьютера. Затем BIOS конфигурирует все устройства, для которых ей удается обнаружить соответствующую информацию; в данном случае речь идет об устройствах материнской платы. При этом BIOS отключает все адаптеры, для которых отсутствует информация о конфигурации.
2. Начинается процесс загрузки. Система по-прежнему работает в реальном режиме. Корневой энумератор диспетчера конфигурации использует поддерево аппаратных средств из реестра Windows для справки о том, какой должна быть конфигурация системы.
3. Корневой энумератор просматривает поддерево реестра в поисках информации об устройствах, не соответствующих стандарту Plug and Play. Обнаружив очередное такое устройство, он создает узел устройства и добавляет его к корню хранящегося в памяти дерева аппаратных средств. Кроме того, корневой энумератор конфигурирует все те устройства, которые не сконфигурировала BIOS.
4. Продолжается загрузка системы в реальном режиме. Системный загрузчик обрабатывает файл SYSTEM.INI и загружает все указанные в нем статические виртуальные драйверы внешних устройств.
5. После этого загружаются остальные энумераторы. Например, BIOS отметила тот факт, что в состав системы входит шина ISA. В реестре указано, какой энумератор следует загрузить для данной шины.
6. Энумератор изучает подключенные к шине устройства и загружает либо статический VЧD (если таковой необходим), либо еще один энумератор, если необходимо обследовать дополнительную шину.
7. Теперь в памяти уже находятся все необходимые драйверы реального режима и статические VЧD. Ядро операционной системы заканчивает свою собственную инициализацию и переключается в защищенный режим.
8. Запускается диспетчер конфигурации. Некоторые из подключенных к системе устройств уже полностью проинициализированы и их драйверы уже загружены. Про остальные устройства система уже знает, но их драйверы еще не загружены.
9. Диспетчер конфигурации загружает нужные энумераторы, которые, в свою очередь, изучают подключенные устройства и присоединяют к дереву аппаратных средств новые узлы. По окончании этого процесса диспетчер конфигурации загружает драйверы, соответствующие новым узлам устройств. Именно на этом этапе становится известно обо всех возможных конфликтах, и принимаются соответствующие решения.
10. Если после всех этих действий останется какое-нибудь неопознанное, не поддерживающее стандарт Plug and Play устройство, Windows начинает процесс его установки, в ходе которого пользователю приходится помогать системе разобраться с конфигурированием. Если необходимости в этом не возникает, система начинает работать.
1.
Дата добавления: 2016-04-06; просмотров: 744;