Рис. 3. Обработка прерывания

 

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

Внешние прерывания вызываются асинхронными событиями, которые происхо­дят вне прерываемого процесса, например:

· прерывания от таймера;

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

· прерывания по нарушению питания;

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

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

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

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

· при наличии в поле кода операции незадействованной двоичной комбинации;

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

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

· при обнаружении ошибок четности, ошибок в работе различных устройств аппаратуры средствами контроля.

 

Супервизор!!!!!– это супервизор операционной системы — ее центральный управляющий моду­ль

Могут еще существовать прерывания при обращении к супервизору ОС — в не­которых компьютерах часть команд может использовать только ОС, а не пользо­ватели. Соответственно в аппаратуре предусмотрены различные режимы работы, и пользовательские программы выполняются в режиме, в котором эти привиле­гированные команды не исполняются. При попытке использовать команду, за­прещенную в данном режиме, происходит внутреннее прерывание и управление передается супервизору ОС. К привилегированным командам относятся и ко­манды переключения режима работа центрального процессора.

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

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

Контрольные вопросы: – Понятие прерывание – Последовательность действий при обработке прерываний – Классы прерываний – Постановка проблемной ситуации (Если отключили электричество, то какого вида произойдет прерывание?) – Зарисовка на доске схемы прерываний   Домашнее задание: Конспект лекций


Лекция 8 (2/16)

Проверка Д/З: 1).5 чел. спросить по предыдущему (см. выше)

Диспетчеризация и приоретизация прерываний в ОС

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