Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС / Тема_4.ppt
Скачиваний:
252
Добавлен:
11.04.2015
Размер:
5.04 Mб
Скачать

1.Программируемый ввод-вывод без прерываний

Воперационных системах Windows (и Windows 9х, и Windows NT/ 2000) печать через параллельный порт осуществляется не в режиме с прерываниями, как это сделано в других ОС, а в режиме опроса готовности, что приводит к 100-процентной загрузке центрального процессора на все время печати.

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

Операционные системы

21

 

Текущая команда программы

 

Системный вызов для выполнения

 

операции ввода-вывода

Выполнение

 

 

Вызов драйвера. Передача

других

команды контроллеру.

действий

 

 

Запрос состояния контроллера

 

ввода-вывода

 

 

 

ПРЕРЫВАНИЕ

Не готов

Проверка

 

 

 

 

состояния

 

Готов

Ошибка

 

Получить слово от

 

контроллера ввода-вывода

 

Записать слово в память

 

Нет

 

Да

Все выполнено ?

 

Следующая команда

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

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

Операционные системы

22

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

Жесткий диск

прерываниями

 

Возбуждение сигнала

 

 

прерывания

Контроллер запускает устройство 2

 

Центральный

4

Контроллер

 

процессор

 

прерываний

5

3

1

Регистры контроллера

Контроллер диска

Драйвер программирует контроллер и переходит в состояние ожидания

3Контроллер устройства ввода-вывода завершил операцию

5

Обработка прерывания, перемещение данных в область

 

программы, передача управления программе

 

 

Операционные системы

23

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

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

Максимальный интервал времени, в течение которого устройство ввода-вывода или его контроллер должны выдать сигнал запроса на прерывание, часто называют установкой тайм-аута.

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

Операционные системы

24

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

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

Секция запуска инициирует операцию ввода-вывода. Эта секция запускается для включения устройства ввода-вывода или просто для инициализации очередной операции ввода- вывода.

Операционные системы

25

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

Секция продолжения (их может быть несколько, если алгоритм управления обменом данными сложный, и требуется несколько прерываний для выполнения одной логической операции) осуществляет основную работу по передаче данных.

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

Секция завершения обычно выключает устройство ввода-вывода или просто завершает операцию.

Операционные системы

26

Текущая команда программы

 

3. Прямой доступ к

 

 

 

 

 

 

 

 

Системный вызов для выполнения

Выполнение

 

памяти.

 

 

Модуль

прямого

доступа

к

операции ввода-вывода. Вызов драйвера.

Программирование DMA

других

памяти

управляет

обменом

действий

 

 

 

Запрос состояния контроллера

 

данных

между

 

основной

 

ввода-вывода

 

памятью

и

контроллером

Не готов

 

 

 

ввода-вывода.

 

Процессор

Проверка

 

 

посылает

запрос

на

передачу

 

 

 

 

состояния

 

блока данных модулю прямого

Готов

Ошибка

 

 

доступа

к

памяти,

а

 

 

Запуск контроллера. Перенос

 

прерывание

 

происходит

данных в буфер. Сигнал в DMA.

 

только после

передачи всего

 

 

 

 

Запрос от DMA на перенос данных. Запись

блока данных.

 

 

 

 

 

 

 

 

 

 

слова в память контроллером. Сигнал в DMA.

 

 

 

 

 

 

DMA увеличивает адрес памяти и уменьшает счетчик байтов

Нет

Да

 

Все выполнено ?

Прерывание

 

 

Операционные системы

27

 

3. Ввод1 вывод через DMA

 

Диск

 

Центральный процессор

 

 

 

 

1

 

Подтверждение

 

 

программирует DMA

5

 

 

 

 

 

 

 

 

 

 

1

Адрес

 

 

 

Буфер

 

 

 

2

 

Оперативнаяпамять

Центральный процессор

 

 

 

 

Счетчик

 

 

 

 

Управляющий

5

Контроллер

 

регистр

 

 

 

 

 

DMA

 

2

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

4

 

Прерывание

 

3

DMA запрашивает

4

Перенос

 

после

 

 

 

 

перенос1

данных

 

данных

 

выполнения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Шина

 

 

Операционные системы

 

28

Работа1 DMA-контроллера

DMA-контроллер4 имеет доступ к системной шине независимо от центрального процессора.

Контроллер содержит несколько регистров,

2

доступных центральному процессору для чтения и

записи (регистр адреса памяти, счетчик байтов, управляющие регистры). 2

Управляющие регистры задают, какой порт ввода-вывода должен 2 быть использован, направление переноса данных (чтение или запись в устройство ввода-вывода), единицу переноса (побайтно, пословно),3 а1 также число байтов, которые следует перенести за одну операцию.

Операционные системы

29

Работа1 DMA-контроллера

Перед выполнением4 операции обмена ЦП программирует DMA-контроллер, устанавливая его

регистры (шаг 1).

2

Затем ЦП дает команду дисковому контролеру прочитать данные во внутренний буфер и

проверить контрольную сумму. После этого

2

процессор продолжает свою работу. Когда данные получены и проверены контроллером диска, DMA может начинать работу. 2

3

1

Операционные системы

30

Соседние файлы в папке ОС