Управление внешними устройствами в операционной системе

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 00:49, 30 марта 2015.

ОС выполняет функции управления внешними устройствами

Задачи

  • Передача команд управления внешних устройств.
  • Обработка прерывания устройств.
  • Обеспечение интерфейса к устройствам.

Классификация

Формально выделяют 2 типа устройств:

  • Блок-ориентированные устройства: обмен блоками фиксированного размера, при этом они (блоки) адресуемы. Пример - жесткий диск.
  • Байт-ориентированные устройства: обмен минимальными единицами - байтами, обращение к такому типу устройств - неадресуемое. Пример - клавиатура.

Принцип организации систем "ввода-вывода"

  1. Система разбивается на уровни. Задача каждого уровня – скрыть реализацию. Обеспечение удобства использования.
  2. Единообразие наименования устройств и принципа доступа. Позволяет писать легко переносимые программы.
  3. Обеспечение обработки ошибок на нижнем уровне. Обработка ошибок должна проводиться как можно ближе к аппаратуре.
  4. Использование блокирующих и неблокирующих вызовов. Для большей производительности лучше, чтобы устройства использовали блокирующие вызовы, а для простоты – неблокирующие.
  5. Использование разделяемых и неразделяемых устройств.

Многоуровневая организация систем "ввода-вывода"

Multi-level organization of OS.png

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