Преподаватель
Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: свободно
Лекция 21:

Системы ввода-вывода

< Лекция 20 || Лекция 21: 12345 || Лекция 22 >

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

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

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

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

Прерывания

Линия запросов на прерывания (interrupt request – IRQ) переключается устройством ввода-вывода, которое сигнализирует с помощью запроса на прерывание о начале или окончании ввода-вывода.

Обработчик прерываний получает сигнал о прерывании. Сигнал может быть замаскирован (maskable),чтобы игнорировать или задержать прерывание – например, если прерывание произошло в обработчике другого прерывания.

Вектор прерываний – резидентный массив, содержащий адреса обработчиков прерываний в операционной системе, - используется с целью переадресовки прерывания для обработки соответствующим обработчиком (handler).

Работа с вектором прерываний основана на приоритетах внешних устройств, инициировавших прерывания.

На рис. 21.2 приведена схема ввода-вывода, управляемого прерываниями.

Ввод-вывод, управляемый прерываниями.

увеличить изображение
Рис. 21.2. Ввод-вывод, управляемый прерываниями.

В таблица 2 приведены номера прерываний в процессоре Intel Pentium.

Таблица 2. Tаблица номеров прерываний в процессоре Intel Pentium
Номер прерывания Описание
0 ошибка при делении
1 исключение при отладке
2 прерывание по null
3 точка остановки
4 прерывание, обнаруженное INTO
5 исключение по выходу за границы
6 неверный код операции
7 устройство недоступно
8 двойное прерывание
9 переполнение сегмента сопроцессора
10 неверный сегмент состояния задачи
11 сегмент отсутствует
12 ошибка стека
13 общее прерывание по защите
14 отказ страницы
15 (зарезервировано Intel, не использовать)
16 ошибка в операции с плавающей точкой
17 контроль выравнивания
18 контроль аппаратуры
19-31 зарезервировано Intel, не использовать
32-255 маскируемые прерывания

Ввод-вывод с прямым доступом к памяти (DMA)

Как уже отмечалось ранее, при традиционной организации ввода-вывода контроллер устройства использует собственную буферную память, что приводит к необходимости двойной пересылке данных – сначала процессор пересылает данные в буфер, созданный ОС, затем ОС пересылает данные в буфер устройства. Ввод-вывод с прямым доступом к памяти (Direct Memory Access – DMA) - более эффективная схема организации ввода-вывода, основанная на использовании фрагмента основной памяти в качестве буфера устройства для выполнения ввода-вывода. Схема .используется с целью избежать программируемого ввода-вывода для больших пересылок данных. Схема требует специальной аппаратуры – DMA-контроллера – в настоящее время такие контроллеры приобретают все более широкое распространение. DMA позволяет избежать участия процессора в пересылках больших объемов данных непосредственно между устройством ввода-вывода и памятью.

На рис. 21.3 приведена схема организации DMA.

Процесс выполнения ввода-вывода по схеме DMA.

увеличить изображение
Рис. 21.3. Процесс выполнения ввода-вывода по схеме DMA.

< Лекция 20 || Лекция 21: 12345 || Лекция 22 >
Гульжан Мурсакимова
Гульжан Мурсакимова
На каком этапе графического конвейера происходит отсечение невидимых объектов?
Василий Четвертаков
Василий Четвертаков
Почему следует исключить race condition?
Айрат Хисматуллин
Айрат Хисматуллин
Россия
Дмитрий Карпов
Дмитрий Карпов
Россия, Нижний Новгород