Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОС.docx
Скачиваний:
44
Добавлен:
22.09.2019
Размер:
3.18 Mб
Скачать

39. Объекты ввода-вывода. Связи между объектами "файл", "устройство" и "драйвер". (Лекция 9)

См. 33 вопрос про ввод-вывод. Объект «файл» – представление ресурсов в памяти, обеспечивающее чтение и запись данных.

Объект «драйвер» - представляет драйвер, содержащий процедуры работы с устройствами.

Объект «устройство» (device object, DO) - представляет физическое или логическое устройство; содержит его характеристики, адреса буферов и очередей приема IRP.

Свойства «файла»:

- режим разделения с другими потоками;

- указатель на объект «устройство»;

- режим открытия.

Диспетчер создает объект «драйвер» и связывает его с исполняемым кодом драйвера. Драйвер создает объекты «устройство» по запросу диспетчеров ввода-вывода или PnP.

Н ачало ввода-вывода: диспетчер создает объект «файл» и связывает его с объектом «устройство».

Выполнение ввода-вывода: диспетчер для работы с объектом «файл» создает IRP и устанавливает требуемую точку входа драйвера

40. Дерево устройств, узлы устройств. (Лекция 9)

Диспетчер PnP после перечисления создает узлы устройств, формируя дерево (device tree) и загружает драйверы.

П еречисление выполняется на основе результатов явной загрузки и данных от драйверов шин.

Явная загрузка – унаследованные драйверы (WinNT); драйверы Win2000 и устройств без PnP ; драйверы с PnP, необходимые для загрузки системы (реестр Windows).

Узел устройств (device node) – комбинация объектов «устройство» (device objects- DO), в совокупности реализующих управление устройством. Физическое (PDO) – для доступа к шинам, функциональное (FDO) – к самому устройству

Узлы устройств хранятся в реестре:

HKLM\SYSTEM\CurrentControlSet\Enum

Параметры:

Driver – GUID драйвера

Service, UpperFilter, LowerFilter – FDO, FiDO (HKLM\SYSTEM\CurrentControlSet\Services)

Class – GUID класса.

Классы устройств хранятся в реестре:

HKLM\SYSTEM\CurrentControlSet\Control\Class

Параметры: UpperFilter, LowerFilter.

Диспетчер Plug and Play (Plug and Play Manager) обновляет дерево устройств при добавлении или удалении устройств или по мере переназначения ресурсов. Дерево устройств является иерархическим, при этом каждое устройство на шине представляется как дочернее устройство шинного адаптера или контроллера. Вся статическая информация об аппаратных средствах хранится в реестре, а компоненты системы Plug and Play и драйверы осуществляют, поддерживают и получают доступ к новым и существующим поддеревьям реестра. В процессе энумерации данные для каждого устройства сохраняются в реестре под ключом HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum. Система Plug and Play принимает решения о том, какие драйверы устройств должны загружаться на базе информации, полученной в результате процесса энумерации. Таким образом, между деревом Enum и списком сервисов, расположенным под ключом HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, существует исключительно важная связь.

Диспетчер устройств (Device Manager) позволяет просматривать устройства как по типу, так и по подключению. Каждая ветвь в дереве определяет узел устройства со следующими требованиями для конфигурации системы:

  •  уникальный идентификатор устройства (Device ID, DID), обычно представляющий имя устройства;

  •  ресурсы, например IRQ и DMA, включая тип ресурса;

  •  выделенные (allocated) ресурсы;

  •  является ли узел устройства шиной, если это применимо (каждое устройство шины имеет дополнительные узлы устройств, расположенные под ним в дереве).

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

Диспетчер устройств по умолчанию не показывает все устройства. Те из них, которые являются так называемыми унаследованными (legacy devices), а также те, которые больше не подключены к компьютеру и некоторые другие.

Диспетчер устройств может использоваться для активизации и отключения устройств, устранения неполадок, обновления драйверов, выполнения откатов драйвера (driver rollback) и изменения ресурсов, назначенных устройствам

Д райвер фильтра сортирует запросы ввода/вывода для шины, устройства или класса устройств. Драйверы фильтра являются необязательными и могут существовать в любом количестве, располагаясь на различных уровнях ≈ как выше, так и ниже функционального драйвера и шинного драйвера. Обычно такие драйверы поставляются фирмами OEM или независимыми поставщиками аппаратных средств (1HV). В большинстве случаев драйверы фильтров нижнего уровня модифицируют поведение аппаратных средств. Например, низкоуровневый драйвер фильтра класса для мыши может обеспечивать ускорение ее работы, выполняя нелинейное преобразование данных о перемещении мыши. Высокоуровневые драйверы фильтров обычно предоставляют дополнительные функции для устройства. Например, высокоуровневый драйвер фильтра у для клавиатуры может вводить дополнительные проверки по безопасности.