Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Прерывания. Прерывания можно разбить на 4 типа:



Прерывания можно разбить на 4 типа:

· Программные прерывания Прерывание вызванное исполняемой программой по ошибке(деление на 0, ссылка на недоступную память,...)

· Прерывания таймера Генерируются таймером процессора и позволяют системе выполнять свои задачи через заданные промежутки времени

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

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

Пример использования прерываний для повышения эффективности работы системы:

Допустим, программа состоит из 3 частей, между которыми выполняются команды ввода-вывода:

---1часть---| команда печати | ---2 часть---| команда ввода |---3часть---| команада сохранения |

1 вариант) исполнение такой программы без прерываний:

· при получении команды печати происходит передача управления системной подпрограмме ввода-вывода, которая выполняет 3 шага:
- подготовку к печати (запись в буфер, подготовка параметров для управления печатью...)
- вывод на печать (выполняется контроллером печати и устройством). В это время программа ждет завершения, периодически проверяя закончилась ли печать.
- завершение печати (установка флагов завершения: успешно прошла печать или нет)

· аналогичные шаги выполняются для всех трех процедур ввода-вывода и при выполнении каждой из них программа ждет завершения операции ввода-вывода и только затем выполняется следующая часть

ВЫВОД: при таком способе образуется много простоев процессора во время операций ввода-вывода, хотя в это время процессор мог бы выполнять следующий действия программы – ведь он не используется при выполнении самой печати или вывода на диск ….

2 вариант) исполнение программы с прерываниями:

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

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

· для всех остальных команд ввода-вывода выполняются аналогичные шаги

ИТОГ:

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

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

- дополнительное время использует обработчик, но это время не соизмеримо с временем ввода-вывода

- после получения сигнала прерывания от устройства, процессор посылает сигнал уведомления этому устройству.

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





Дата публикования: 2014-11-29; Прочитано: 239 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...