что такое драйвер в операционных системах

# факты | Как работает драйвер?

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

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

Многие пользователи не в восторге от того, что многие драйверы не входят в состав операционной системы. У такого подхода есть свои причины. Дело в том, что в драйверы часто вносятся изменения. Если бы они были «прошиты» в ОС, каждое изменение драйвера требовало бы модификации и перекомпиляции всей операционной системы в целом. Кроме того, разработка драйверов лежит, в основном, на создателях оборудования, а не на разработчиках операционной системы. Это весьма логично, поскольку только те, кто работал над самим устройством, могут в полной мере знать о его особенностях.

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

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

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

Продолжение рассказа об операционных системах следует…

Источник

Драйвер — что это такое и для чего они нужны

Практически каждый пользователь компьютера и ноутбука при первой установке/переустановке Windows или подключении к системе нового устройства/железа — сталкивается с термином драйвер.

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

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

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

Что такое драйвер

Драйвер (driver) — это программное обеспечение для операционной системы, чтобы она могла взаимодействовать с подключенным к компьютеру/ноутбуку аппаратным обеспечением. Это может быть принтер, видеокарта, звуковая карта и т.д. С английского языка переводится, как «проводник».

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

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

Также, такое ПО может быть только имитацией подключенного устройства. Например, если вы захотите распечатать какой-либо документ, но самого принтера у вас нет, то его можно будет «распечатать» через имитируемый программой-драйвером принтер в файл pdf.

Для чего нужен драйвер

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

А происходит это, потому что такое программное обеспечение для ключевых компонентов системы — процессор, клавиатура, монитор и т.д. уже по умолчанию есть в самой Windows и автоматически устанавливается вместе с самой ОС. Но, для некоторых устройств (принтер, сканер, видеокарта и других) нужно устанавливать свое ПО, которое обычно выпускает сам производитель.

Простыми словами, без установленной для устройства программы-драйвера, например, для сканера — он попросту не будет работать.

Интересно! При подключении к ПК/ноутбуку какого-либо нового оборудования Windows автоматически начинает поиск подходящего для него ПО.

Как посмотреть установленные драйверы на компьютере с Windows

В ОС Windows 10, 8, 8.1 и 7 их список можно посмотреть в диспетчере устройств. Чтобы открыть его разом нажмите клавиши «WIN + R» на клавиатуре и вбейте команду devmgmt.msc.

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

Откроется окно со списком аппаратных средств системы, разделенных по категориям. Так раскрыв определенную категорию и открыв какой-либо компонент, можно перейти по вкладке «Драйвер» и посмотреть сведения о нем.

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

Если вы увидите, устройство с восклицательным знаком — значит программное обеспечение к нему работает неправильно или вообще отсутствует. Его будет необходимо переустановить/установить.

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

Важно! Подробнее прочитать про установку драйверов можно в соответствующей статье. Там же вы найдете подробную инструкцию по их поиску и автоматической установке с помощью специальных программ.

В заключение

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

Источник

Что такое драйвер и как его установить

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

Компоненты ПК и driver

Как писалось выше, driver используется для взаимодействия компонентов ПК и операционной системы. То есть по сути это ПО, которое помогает, например, вашей видеокарте взаимодействовать с операционной системой. Из года в год производители выпускают новые компьютерные комплектующие и различные периферийные устройства к ПК. Чтобы все эти компоненты работали в операционной системе, производители для них пишут драйвера. Например, если вы купите новый принтер, то в комплекте вы обнаружите диск с программным обеспечением, установив которое ваш принтер будет нормально функционировать в Windows.

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

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

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

Как установить driver

Сделаем это на примере. Мы будем использовать компьютер с операционной системой Windows 10, который базируется на процессоре A10-7850K и чипсете фирмы AMD. В примере мы произведем инсталляцию драйвера для видеокарты Radeon R7, которая встроена в процессор.

Для нормального функционирования видеокарты, как писалось ранее, мы скачаем свежий driver c сайта http://support.amd.com. Для инсталляции будем использовать новый установочный пакет Radeon Software Crimson Edition для Windows 10. После загрузки можно приступать к непосредственной инсталляции. Для этого запустите установочный пакет. Должно появится окно распаковки установочных файлов.

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

После распаковки запустится основной инсталлятор, который проанализирует систему и предложит установить набор драйверов.

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

В процессе установки дисплей может потухнуть на пару секунд. Это нормальное явление, когда устанавливают видео driver. Завершающим этапом установки будет последнее окно инсталлятора, в котором вам будет предложено перезагрузить компьютер.

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

После перезагрузки установка видеодрайвера будет завершена.

Теперь рассмотрим, как установить driver чипсета для платформы AMD. Для этого скачаем установочный пакет с того же сайта, что и видео driver и запустим его. После распаковки запустится такое окно.

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

После перезагрузки установка драйвера чипсета будет завершена. Как вы уже заметили, процесс инсталляции дров чипсета компании AMD аналогичен примеру для видеокарты.

Как найти driver

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

Также стоит отметить, что сейчас производители ноутбуков не кладут диск с требуемым программным обеспечением в комплект поставки. Это обусловлено тем, что сейчас большинство ноутбуков выпускается без оптического привода. Кроме этого, скачивая новый driver с сайта производителя устройства, вы можете исправить ряд ошибок, которые вызвал бы старый, записанный на диске.

Такие новые устройства, как 3G-модемы и принтеры поставляются с встроенной флеш памятью, в которой содержатся установочные файл. Поэтому при подключении этих устройств к ПК, должен запуститься автозапуск инсталлятора драйверов для этих устройств.

Из примера видно, что установка драйверов — это достаточно несложный процесс, и с ним справится даже начинающий пользователь ПК. К тому же, если на вашем компьютере установлена операционная система Windows 10, то в подавляющем большинстве случаев она загрузит и установит драйвера автоматически.

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

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

Видео по теме

Источник

Драйвер устройства и с чем его едят

Что такое «драйвер»

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

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

Основная задача любого драйвера – это предоставление софтового интерфейса для управления устройством, с помощью которого операционная система и другие компьютерные программы получают доступ к функциям данного устройства, «не зная» как конкретно оно используется и работает.

Обычно драйвер общается с устройством через шину или коммуникационную подсистему, к которой подключено непосредственное устройство. Когда программа вызывает процедуру (очередность операций) драйвера – он направляет команды на само устройство. Как только устройство выполнило процедуру («рутину»), данные посылаются обратно в драйвер и уже оттуда в ОС.

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

Любая операционная система обладает «картой устройств» (которую мы видим в диспетчере устройств), для каждого из которых необходим специфический драйвер. Исключения составляют лишь центральный процессор и оперативная память, которой управляет непосредственно ОС. Для всего остального нужен драйвер, который переводит команды операционной системы в последовательность прерываний – пресловутый «двоичный код».

Как работает драйвер и для чего он нужен?

Основное назначение драйвера – это упрощение процесса программирования работы с устройством.

Он служит «переводчиком» между хардовым (железным) интерфейсом и приложениями или операционными системами, которые их используют. Разработчики могут писать, с помощью драйверов, высокоуровневые приложения и программы не вдаваясь в подробности низкоуровневого функционала каждого из необходимых устройств в отдельности.

Как уже упоминалось, драйвер специфичен для каждого устройства. Он «понимает» все операции, которые устройство может выполнять, а также протокол, с помощью которого происходит взаимодействие между софтовой и железной частью. И, естественно, управляется операционной системой, в которой выполняет конкретной приложение либо отдельная функция самой ОС («печать с помощью принтера»).

Если вы хотите отформатировать жесткий диск, то, упрощенно, этот процесс выглядит следующим образом и имеет определенную последовательность: (1) сначала ОС отправляет команду в драйвер устройства используя команду, которую понимает и драйвер, и операционная система. (2) После этого драйвер конкретного устройства переводит команду в формат, который понимает уже только устройство. (3) Жесткий диск форматирует себя, возвращает результат драйверу, который уже впоследствии переводит эту команду на «язык» операционной системы и выдает результат её пользователю (4).

Как создается драйвер устройства

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

Для каждого устройства существует свой строгий порядок выполнения команд, называемой «инструкцией». Не зная инструкцию к устройству, невозможно написать для него драйвер, так как низкоуровневые машинные команды являются двоичным кодом (прерываниями) которые на выходе отправляют в драйвер результат, полученный в ходе выполнения этой самой инструкции.

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

Написание любого драйвера начинается с его «скелета» — то есть самых основных команд вроде «включения/выключения» и заканчивая специфическими для данного устройства параметрами.

И чем драйвер не является

Часто драйвер устройства сравнивается с другими программами, выполняющими роль «посредника» между софтом и/или железом. Для того, чтобы расставить точки над «i», уточняем:

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

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Драйвер

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

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

Содержание

Драйвер и операционная система

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

Чтобы получить доступ к аппаратной части устройства, то есть к регистрам контроллера, драйвер устройства, как правило, должен быть частью ядра операционной системы, по крайней мере в существующих на сегодняшний день архитектурах. Но вообще-то можно создавать и драйверы, работающие в пространстве пользователя, используя при этом системные вызовы для чтения и записи регистров устройств. Такое решение позволит изолировать ядро от драйверов и драйверы друг от друга, устранив при этом основной источник системных сбоев — «сырые» драйверы, тем или иным образом мешающие работе ядра. Несомненно, это хороший выход из положения при создании высоконадежных систем.

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

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

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

С наступлением эры персональных компьютеров с несметным количеством устройств ввода-вывода эта модель уже не работает. Лишь немногие пользователи способны перекомпилировать или перекомпоновать ядро, даже если у них будут исходные коды или объектные модули, что случается довольно редко. Вместо этого операционные системы, начиная с MS-DOS, перешли к модели, в которой драйверы стали динамически загружаться в систему в процессе работы. Управление загрузкой драйверов ведется в разных системах по-разному.

Алгоритм работы

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

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

Управление устройством означает выдачу в его адрес последовательности команд. Именно драйвер определяет последовательность команд в зависимости от того, что должно быть сделано. После того как драйвер поймет, какие команды он собирается выдать, он начнет записывать их в регистры контроллера устройства. После записи каждой команды в контроллер может потребоваться проверка того, принял ли контроллер команду и готов ли к приему следующей команды. Эта последовательность повторяется до тех пор, пока не будут выданы все команды. Некоторым контроллерам можно указывать на связанный список команд (в памяти) и предписывать самостоятельное чтение и обработку этих команд без дальнейшей помощи со стороны операционной системы.

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

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

Функции программного обеспечения, не зависящего от конкретных устройств

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

Предоставление унифицированного интерфейса для драйверов устройств

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

Одной из острых проблем при создании операционных систем является придание всем устройствам и драйверам ввода-вывода более или менее однообразного вида.

Один из аспектов этой проблемы — интерфейс между драйверами устройств и остальной операционной системой. На рис. 2 (а) показана ситуация, в которой у каждого драйвера устройства имеется собственный интерфейс с операционной системой. Это означает, что функции драйвера, доступные для вызова системой, различаются от драйвера к драйверу. Это может означать, что и функции ядра, в которых нуждается драйвер, различаются от драйвера к драйверу. Все вместе взятое это означает, что обеспечение интерфейса с каждым новым драйвером требует множества новых усилий по созданию программного кода.

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

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

Буферизация

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

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

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

В улучшенном варианте пользовательский процесс предоставляет буфер объемом N символов и выполняет чтение такого же количества символов. Процедура обработки прерывания помещает поступающие символы в этот буфер до тех пор, пока он не заполнится. Затем она возобновляет работу пользовательского процесса. Эта схема работает намного эффективнее предыдущей, но у нее есть один недостаток. Что получится, если буфер выйдет за границу страницы при поступлении очередного символа? Буфер будет зафиксирован в памяти, но если множество процессов начнет фиксировать страницы в памяти, то запас доступных страниц сократится и производительность резко снизится.

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

Буферизация является широко используемой технологией, но у нее имеются и недостатки. Если данные будут подвергаться буферизации слишком часто, упадет производительность. Рассмотрим, к примеру, сеть, показанную на рис. 4. Здесь пользовательский процесс осуществляет системный вызов для записи данных по сети. Ядро копирует пакет данных в буфер ядра, позволяя пользовательскому процессу немедленно возобновить работу (шаг 1). Теперь пользовательская программа может использовать буфер повторно.

что такое драйвер в операционных системах. Смотреть фото что такое драйвер в операционных системах. Смотреть картинку что такое драйвер в операционных системах. Картинка про что такое драйвер в операционных системах. Фото что такое драйвер в операционных системах

Когда вызывается драйвер, он копирует пакет в контроллер для его последующего вывода (шаг 2). Причина, по которой он не осуществляет вывод в сеть непосредственно из памяти ядра, состоит в том, что как только будет запущена передача пакета, она должна продолжаться на постоянной скорости. Драйвер не может гарантировать, что он будет получать доступ к памяти на постоянной скорости, поскольку множество циклов обращения к шине могут отвлекать на себя каналы DMA и другие устройства ввода-вывода. Неудача при своевременном получении слова приведет к порче пакета. Эту проблему можно устранить за счет буферизации пакета внутри контроллера.

После того как пакет будет скопирован во внутренний буфер контроллера, он копируется в сеть (шаг 3). Биты поступают получателю вскоре после их отправки, поэтому сразу же после отправки последнего бита этот бит поступает получателю, у которого пакет попадает в буфер контроллера. Затем пакет копируется в буфер ядра получателя (шаг 4). И наконец он копируется в буфер процесса получателя (шаг 5). Обычно после этого получатель посылает подтверждение. Когда отправитель получает подтверждение, он имеет возможность послать следующий пакет. Но при этом следует понимать, что операции копирования существенно снижают скорость передачи данных, поскольку шаги должны осуществляться последовательно.

Сообщение об ошибках

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

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

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

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

Распределение и высвобождение выделенных устройств

Некоторые устройства, в любой момент времени могут использоваться только одним процессом. Операционная система должна проверять запросы на использование и принимать их или отвергать в зависимости от доступности запрашиваемого устройства. Простой способ обработки этих запросов заключается в требовании к процессам непосредственно открывать специальные файлы для этих устройств с помощью системных вызовов OPEN. Если устройство недоступно, то системный вызов OPEN потерпит неудачу. Освобождение выделенного устройства происходит после его закрытия с помощью системного вызова CLOSE. Альтернативный подход заключается в использовании специальных механизмов для запроса и освобождения выделенных устройств. Попытка получить в свое распоряжение недоступное устройство приводит не к отказу, а к блокировке процесса, предпринявшего эту попытку. Заблокированные процессы помещаются в очередь. Рано или поздно запрашиваемое устройство станет доступным, и первому процессу из этой очереди будет позволено получить устройство и продолжить свою работу.

Предоставление размера блока, не зависящего от конкретных устройств

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

Горячее подключение устройств

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

Виртуальные драйверы

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *