Рис. 3. Обработка прерывания
Прерывания, возникающие при работе вычислительной системы, можно разделить на два основных класса: внешние (их иногда называют асинхронными) и внутренние (синхронные).
Внешние прерывания вызываются асинхронными событиями, которые происходят вне прерываемого процесса, например:
· прерывания от таймера;
· прерывания от внешних устройств (прерывания по вводу/выводу);
· прерывания по нарушению питания;
· прерывания с пульта оператора вычислительной системы;
· прерывания от другого процессора или другой вычислительной системы.
Внутренние прерывания вызываются событиями, которые связаны с работой процессора и являются синхронными с его операциями. Примерами являются следующие запросы на прерывания:
· при нарушении адресации (в адресной части выполняемой команды указан запрещенный или несуществующий адрес, обращение к отсутствующему сегменту или странице при организации механизмов виртуальной памяти);
· при наличии в поле кода операции незадействованной двоичной комбинации;
· при делении на нуль;
· при переполнении или исчезновении порядка;
· при обнаружении ошибок четности, ошибок в работе различных устройств аппаратуры средствами контроля.
Супервизор!!!!!– это супервизор операционной системы — ее центральный управляющий модуль
Могут еще существовать прерывания при обращении к супервизору ОС — в некоторых компьютерах часть команд может использовать только ОС, а не пользователи. Соответственно в аппаратуре предусмотрены различные режимы работы, и пользовательские программы выполняются в режиме, в котором эти привилегированные команды не исполняются. При попытке использовать команду, запрещенную в данном режиме, происходит внутреннее прерывание и управление передается супервизору ОС. К привилегированным командам относятся и команды переключения режима работа центрального процессора.
Наконец, существуют собственно программные прерывания. Эти прерывания происходят по соответствующей команде прерывания, то есть по этой команде процессор осуществляет практически те же действия, что и при обычных внутренних прерываниях. Данный механизм был специально введен для того, чтобы переключение на системные программные модули происходило не просто как переход в подпрограмму, а точно таким же образом, как и обычное прерывание. Этим обеспечивается автоматическое переключение процессора в привилегированный режим с возможностью исполнения любых команд.
Сигналы, вызывающие прерывания, формируются вне процессора или в самом процессоре; они могут возникать одновременно. Выбор одного из них для обработки осуществляется на основе приоритетов, приписанных каждому типу прерывания.
Контрольные вопросы: – Понятие прерывание – Последовательность действий при обработке прерываний – Классы прерываний – Постановка проблемной ситуации (Если отключили электричество, то какого вида произойдет прерывание?) – Зарисовка на доске схемы прерываний | Домашнее задание: Конспект лекций |
Лекция 8 (2/16)
![]() | Проверка Д/З: | 1).5 чел. спросить по предыдущему (см. выше) |
Диспетчеризация и приоретизация прерываний в ОС
Приоритет – число, характеризующее степень привилегированности потока. Очевидно, что прерывания от схем контроля процессора должны обладать наивысшим приоритетом (если аппаратура работает неправильно, то не имеет смысла продолжать обработку информации). На рис. 4 изображен обычный порядок (приоритеты) обработки прерываний в зависимости от типа прерываний. Учет приоритета может быть встроен в технические средства, а также определяться операционной системой, то есть кроме аппаратно реализованных приоритетов прерывания большинство вычислительных машин и комплексов допускают программно-аппаратное управление порядком обработки сигналов прерывания. Второй способ, дополняя первый, позволяет применять различные дисциплины обслуживания прерываний