Спонсор: 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 >
Гульжан Мурсакимова
Гульжан Мурсакимова
Василий Четвертаков
Василий Четвертаков
Павел Маляр
Павел Маляр
Россия, Барнаул, АлтГТУ им. И.И. Ползунова, 2019