Драйвер устройства

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

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

Опрос устройств

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

  1. command-ready – готово к выполнению команд;
  2. busy – занято;
  3. error – ошибка.

При выполнении ввода-вывода аппаратура организует цикл busy-wait ожидания ввода-вывода с устройством: если устройство занято, процесс ждет его освобождения.

Характеристики

схема3

Взаимодействие процессора с SSD

  1. Драйверу устройства дано задание переслать данные с диска в буфер по адресу Х;
  2. Драйвер устройства дает задание контролеру диска переслать С байтов с диска в буфер по адресу Х;
  3. Контроллер диска инициирует DMA-пересссылку;
  4. Контролер пересылает каждый байт в DMA-контролер;
  5. DMA-контролер пересылает байты в буфер Х, увеличивая адрес в памяти и уменьшая С, пока С не станет равным 0;
  6. Когда С = 0, DMA-контроллер прерывает процессор сигналом об окончании операции.