гигантским многообразием. Существуют сотни различных моделей
видеоадаптеров, звуковых карт, мониторов, принтеров, сканеров и прочего
оборудования. Ни один разработчик программного обеспечения не в состоянии
предусмотреть все варианты взаимодействия своей программы, например, с
печатающим устройством. Гибкость аппаратных и программных конфигураций
вычислительных систем поддерживается за счет того, что каждый разработчик
оборудования прикладывает к нему специальные программные средства
управления — драйверы. Драйверы имеют точки входа для взаимодействия с
прикладными программами, а диспетчеризация обращений прикладных
программ к драйверам устройств — это одна из функций операционной
системы. Строго говоря, выпуская устройство, например модем, его
разработчик прикладывает к нему несколько драйверов, предназначенных для
основных операционных систем, как-то: Windows 95/98/Me/NT/2000, MS-DOS
и т. п. В операционных системах MS-DOS драйверы устройств загружаются как
резидентные программы, напрямую работающие с процессором и другими
устройствами материнской платы. Здесь участие операционной системы
сводится лишь к тому, чтобы предоставить пользователю возможность загрузки
драйвера, — далее он сам перехватывает прерывания, используемые для
обращения к устройству, и управляет его взаимодействием с вызывающей
программой. Загрузка драйверов устройств может быть ручной (после
первоначальной загрузки компьютера пользователь сам выдает команды на
загрузку драйверов) или автоматической, когда команды на загрузку и
настройку драйверов включаются в состав файлов, автоматически читаемых
при загрузке компьютера. В MS-DOS такие файлы называются файлами
конфигурации; их всего два — это файлы autoexec.bat и config.sys. В них
прежде всего включают команды загрузки драйверов мыши, дисковода CD-
ROM, звуковой карты, расширенной памяти (оперативная память, лежащая за
пределами 1 Мбайт, рассматривается в MS-DOS как дополнительное
устройство и требует специального драйвера), а также прочих устройств.
В таких операционных системах, как Windows 95 и др., операционная
система берет на себя все функции по установке драйверов устройств и
передаче им управления от приложений. Во многих случаях операционная
система даже не нуждается в драйверах, полученных от разработчика
устройства, а использует драйверы из собственной базы данных.
Наиболее современные операционные системы Windows позволяют
управлять не только установкой и регистрацией программных драйверов
устройств, но и процессом аппаратно-логического подключения. Каждое
подключенное устройство может использовать до трех аппаратных ресурсов
устройств материнской платы: адресов внешних портов процессора,
прерываний процессора и каналов прямого доступа к памяти. Если устройство
подключается к материнской плате через шину PCI, то есть техническая
возможность организовать между ним и материнской платой обратную связь.
Это позволяет операционной системе анализировать требования устройств о
выделении им ресурсов и гибко реагировать на них, исключая захват одних и
тех же ресурсов разными устройствами. Такой принцип динамического