Взаимодействие с аппаратным обеспечением

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

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

основных операционных систем. В операционных системах семейства Windows операционная система берет на себя все функции по установке драйверов устройств и передаче им управления от приложений.

Каждое подключенное устройство может использовать до трех аппаратных ресурсов устройств материнской платы: адресов внешних

портов процессора, прерываний процессора и каналов прямого доступа к памяти.

При некоторых способах подключения устройства к материнской плате (например, через шину PCI) есть техническая возможность организовать между ним и материнской платой обратную связь. Это позволяет операционной системе анализировать требования устройств о выделении им ресурсов и гибко реагировать на них, исключая захват одних и тех же ресурсов разными устройствами. Такой принцип динамического распределения ресурсов операционной системой получил название plug-andplay,