Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
operatsionnye_sistemy (1).docx
Скачиваний:
31
Добавлен:
02.04.2015
Размер:
229.45 Кб
Скачать

Обработка прерываний и драйверы

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

Лучший способ сделать прерывания незаметными заключается в блокировке драйвера, начавшего операцию ввод-вывод, вплоть до окончания этой операции и получения прерывания. Драйвер может заблокировать себя сам , выполнив на семафоре процедуру <down> на переменной состояния. Когда прерывание начинается, начинает работать обработчик прерываний, а после окончания прерывания, он может заблокировать драйвер, допустивший прерывание.

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

Программные уровни ввод-вывод

  1. Программное обеспечение вв выв уровня пользователя

  2. Устройство-независимое программное обеспечение ОС.

  3. Драйверы устройства.

  4. Обработчики прерываний.

  5. Аппаратура

В большинстве операционных систем определен стандартный интерфейс, который должен поддерживать все блочные драйверы и второй стандартный интерфейс, который должен поддерживать все символьные драйверы.

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

К этим процедурам относятся чтение блока, запись символьной строки и др.

В некоторых ОС, которые являются монолитными, т.е. представляют собой единственную двоичную программу, содержащую в себе в откомпилированном виде все необходимые ей драйверы. Хотя уже в MS-DOS перешли к динамической перегрузке драйверов.

33 Независимое от устройств программное обеспечение ввода-вывода Единообразный интерфейс для устройств

5. Размер блока не зависит от устройства.

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

Единообразный интерфейс драйверов устройств

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]