Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000377.doc
Скачиваний:
29
Добавлен:
30.04.2022
Размер:
2.52 Mб
Скачать
    1. Драйверы

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

Роль драйверов в операционной системе

Драйвер – это программный модуль, осуществляющий непосредственное управление внешним устройством. Необходимость использования драйверов связанна с большим разнообразием аппаратной реализации, наборов команд и управляющих регистров даже у однотипных устройств, выполняющих, в общем-то, одинаковые функции.

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

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

Описанные проблемы стали очевидными уже в первых поколениях операционных систем. Решением стало использование подключаемых программных модулей – драйверов устройств. Драйверы представляют собой компоненты операционной системы, набор которых может быть изменен без модификации базового кода операционной системы. При этом многие современные операционные системы могут динамически подключать и отключать драйверы во время работы, без перезагрузки операционной системы.

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

В большинстве случаев драйверы разрабатываются компаниями производителями внешних устройств и поставляются в комплекте с этими устройствами.

Драйверы позволяют операционной системе эффективно решить две ключевые задачи:

  • реализация аппаратно независимого интерфейса для доступа к внешним устройствам;

  • организация очереди запросов для одновременного доступа множества процессов к одному и тому же устройству в многозадачных операционных системах.