Взаимодействие процессора с внешними устройствами (также называемое
вводом-выводом) возможно только через адресуемую память. Существуют 2
схемы передачи данных между памятью и устройствами: PIO (Programmed IO
— ввод-вывод через процессор) и DMA (Direct Memory Access — прямой доступ
к памяти). Взаимодействие процессора с магнитными дисками как накопителями данных
осуществляется через DMA. В этом случае взаимодействие происходит
через отдельный контроллер и драйвер.
Схема организации DMA
- Необходимо переслать данные с диска в буфер по адресу X
- Драйвер устройства дает задание контроллеру диска переслать C байтов с диска в буфер по адресу X
- Контроллер диска инициирует DMA-пересылку
- Контроллер диска пересылает каждый байт в DMA-контроллер
- DMA-контроллер пересылает байты в буфер X, увеличивая адрес в памяти и уменьшая C, пока C не станет равным нулю
- DMA-контроллер прерывает процессор сигналом об окончании операции
|
|
Драйвер устройства — это компьютерная программа, которая реализует
механизм управления устройством и позволяет программам более высокого
уровня взаимодействовать с конкретным устройством, не зная его команд и
других параметров функционирования. Драйвер осуществляет свои функции
посредством команд контроллера устройства и обработки прерываний,
приходящих от него. Как правило, драйвер реализуется как часть (модуль) ядра ОС, т.к.:
- обработка прерываний драйвером требует задействования функций ОС
- справедливая и эффективная утилизация устройства требует участия ОС
- посылка неверных команд или их последовательностей, а также
- несоблюдение других условий работы с устройством может вывести его из строя
Драйверы устройств деляться на 3 основных класса:
- Символьные
- — работают с устройствами, позволяющими передавать
данные по 1 символу (байту): как правило, различные консоли, модемы и т.п.
- Блочные
- — работают с устройствами, позволяющими осуществлять
буферизированный ввод-вывод: например, различными дисковыми накопителями
- Сетевые
|