Прерывания и их использование

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

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

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

Адрес программы-обработчика прерывания вычисляется по таблице векторов прерываний.

Механизм прерываний поддерживается на аппаратном уровне.

В зависимости от источника, прерывания делятся на

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

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

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

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

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

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

По другой классификации прерывания делятся на

· внешние - вызываются внешними по отношению к микропроцессору событиями (по существу - это группа аппаратных прерываний)

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

Замечание!!! В реальном и защищенном режиме работы микропроцессора обработка прерываний осуществляется принципиально разными методами.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: