Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСС.docx
Скачиваний:
11
Добавлен:
01.09.2019
Размер:
79.62 Кб
Скачать

Вопрос 16. Прерывания. Механизм обработки (7 шагов)

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

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

Механизм обработки прерываний независимо от архитектуры включает следующие основные этапы – шаги:

  1. Установление факта прерывания (прием сигнала на прерывания) и аутентификация прерывания в ОС (может осуществляться повторно на шаге 4)

  2. Запоминания состояния прерванного процесса

  3. Передача управления (аппаратно) подпрограмме обработке прерывания

  4. Сохранение информации о прерванной программе, которую не удалось спасти на шаге два с помощью действия аппаратуры

  5. Обработка прерывания – эта работа моет быть выполнена той же подпрограммой, которой было передано управление на шаге 3, но в ОС чаще всего реализуется путем последующего вызова соответствующей подпрограммой.

  6. Восстановление информации, относящейся к прерванному процессу (этап, обратный шагу 4)

  7. Возврат в прерванную подпрограмму.

Шаги с 1 по 3 реализуется аппаратно, а шаги с 4 по 7 программно.

Вопрос 17. Функции механизма прерываний. Классы прерываний.

Главные функции механизма прерываний:

  1. Распознавание, или классификация прерываний

  2. Передача управления соответственно обработчику прерываний

  3. Корректное возвращение к прерванной программе

Прерывания можно разделить на два основных класса

  1. Внешние (их иногда называют асинхронными)

  2. Внутренние (синхронные)

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

  1. Прерывания от таймера

  2. Прерывания от внешних устройств

  3. Прерывания из – за нарушения питания

  4. Прерывания от другого процесса

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

  1. При нарушении адресации;

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

  3. При делении на 0;

  4. Ошибки в работе различных внутренних аппаратных устройств

Вопрос 18. Программные прерывания. Дисциплины обслуживания.

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

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

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

Программное управление специальными регистрами маски (так называемое маскирование сиг­налов прерывания) позволяет реализо-вать различные дисциплины обслужива­ния, такие как:

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

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

3) дисциплина обслужива­ния по принципу стека (дисциплина LCFS или, по-другому, LIFO), то есть когда запросы с более низким приоритетом могут прерывать обработку прерывания с более вы­соким приоритетом. Для этого необходимо не накладывать маски ни на один сигнал прерывания и не выключать систему прерываний.