Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессы.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
171.01 Кб
Скачать

Прерывания

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

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

Типы прерываний

Прерывания можно разделить на два основных класса: внешние (называют асинхронными) и внутренние (синхронные).

Внешние (асинхронные) могут поступить:

  • от таймера;

  • от внешних устройств (прерывания ввода/вывода);

  • от блока контроля питания;

  • с пульта оператора вычислительной системы;

  • от другого процессора или другой вычислительной машины.

Синхронные (внутренние) прерывания можно разделить на две части – программные и остальные:

  • при нарушении адресации (выход за пределы программы за пределы массива);

  • при возникновении в поле кода операции, которого нет на данной вычислительной системе;

  • при делении на нуль;

  • при переполнении, исчезновении порядка;

  • при обнаружении ошибок четности;

  • другие … (например, прерывания супервизора);

  • масса программных прерываний.

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

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

Системный таймер

Магнитные диски

Сетевое оборудование

Терминалы

Программные прерывания

Контроль процессора

Повышение приоритета прерывания

Рис. 1 Уровень приоритета прерываний

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

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

  • с абсолютным приоритетом. В этом случае, если во время обработки прерывания поступает прерывание с более высоким приоритетом, то происходит прерывание самой программы обработки прерывания с меньшим приоритетом;

  • по принципу стека (дисциплина LCFS last come first served – последним пришел – первым обслужен). При этой дисциплине обслуживания запросы на прерывания с более низким приоритетом могут прерывать обработку прерывания с более высоким приоритетом.