Логические принципы взаимодействия процессора с жестким диском



Взаимодействие процессора с внешними устройствами (также называемое вводом-выводом) возможно только через адресуемую память. Существуют 2 схемы передачи данных между памятью и устройствами: PIO (Programmed IO — ввод-вывод через процессор) и DMA (Direct Memory Access — прямой доступ к памяти). Взаимодействие процессора с магнитными дисками как накопителями данных осуществляется через DMA. В этом случае взаимодействие происходит через отдельный контроллер и драйвер.


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


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

  • обработка прерываний драйвером требует задействования функций ОС
  • справедливая и эффективная утилизация устройства требует участия ОС
  • посылка неверных команд или их последовательностей, а также
  • несоблюдение других условий работы с устройством может вывести его из строя
Драйверы устройств деляться на 3 основных класса:
Символьные
— работают с устройствами, позволяющими передавать данные по 1 символу (байту): как правило, различные консоли, модемы и т.п.
Блочные
— работают с устройствами, позволяющими осуществлять буферизированный ввод-вывод: например, различными дисковыми накопителями
Сетевые