Введение в архитектуру компьютеров

         

Особенности системы прерывания в современных ЭВМ


Наибольшее распространение в компьютерах получили шесть уровней прерывания:

*                   ввод-вывод;

*                   обращение к супервизору;

*                   программный сбой;

*                   внешние прерывания;

*                   прерывание повторного пуска;

*                   прерывание от схем контроля.

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

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

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

Внешние прерывания происходят от внешних по отношению к компьютеру объектов: от оператора путем нажатия определенной кнопки, от датчика времени и т. п.

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

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



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

Каждому уровню прерываний соответствуют два ССП: новое и старое, которые хранятся в специальных полях реальной памяти. Общее назначение ССП – управление последовательностью выборки команд, запоминание и идентификация текущего состояния аппаратных средств относительно программы, выполняемой в фиксированный момент времени, и некоторые другие функции. Если мы желаем частично изменить состояние процессора, то необходимо загружать только требуемую часть нового ССП. Однако при прерываниях любого уровня происходит полная смена содержимого старого ССП на новое, которое становится текущим. Если в конце программы, которой было передано управление по прерыванию, стоит команда ВОС-СТАНОВИТЬ СТАРОЕ ССП, то процессор восстанавливает состояние, предшествующее прерыванию, и прерванная программа продолжает свое выполнение.

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

Общая схема обработки прерываний дана на рис. 6.5.

Порядок приоритета может быть изменен программным путем через изменение маски прерывания. Чаще всего состояние "1" разряда маски разрешает прерывание данного уровня, а в состоянии "0" запрещает прерывание.

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

Рис. 6.5. Схема обработки прерывания

О наличии своих обработчиков операционная система должна знать заранее. Иногда этот вопрос решается во время генерации системы.


Содержание раздела